2015-09-02 70 views
1

嗨我想嘗試運行我的腳本任務吞嚥。我的腳本路徑定義如下:

scripts: { 
     coffee: [ 
      'app/assets/scripts/**/*.coffee' 
     ], 
     js: [ 
      'src/js/*', 
      'src/js/**/*' 
     ], 
     map: ['src/js/**/*.map'] 
    }, 

我原來的文件路徑位於根/ src目錄/ JS /我希望我的腳本被放置在他們的根/應用/資產/腳本內縮小的版本/。

我一飲而盡任務如下:

gulp.task('scripts', function() { 
    return gulp.src('app/scripts/**/*.js') 
     .pipe($.if('*.js', $.uglify({preserveComments: 'some'}))) 
     .pipe($.sourcemaps.init()) 
     .pipe($.concat('app.js')) 
     .pipe($.sourcemaps.write('./')) 
     .pipe(gulp.dest('app/assets/scripts')); 
}); 

But for some reason I keep getting this error 
[13:28:46] ReferenceError: $ is not defined 
    at Gulp.<anonymous> (C:\Users\Myuser\apps\myapp\gulpfile.js:165:9) 
    at module.exports (C:\Users\Myuser\apps\myapp\node_modules\gulp\node_ 
modules\orchestrator\lib\runTask.js:34:7) 
    at Gulp.Orchestrator._runTask (C:\Users\Myuser\apps\myapp\node_module 
s\gulp\node_modules\orchestrator\index.js:273:3) 
    at Gulp.Orchestrator._runStep (C:\Users\Myuser\apps\myapp\node_module 
s\gulp\node_modules\orchestrator\index.js:214:10) 
    at Gulp.Orchestrator.start (C:\Users\Myuser\apps\myapp\node_modules\g 
ulp\node_modules\orchestrator\index.js:134:8) 
    at C:\Users\Myuser\AppData\Roaming\npm\node_modules\gulp\bin\gulp.js:129:2 
0 
    at process._tickCallback (node.js:355:11) 
    at Function.Module.runMain (module.js:503:11) 
    at startup (node.js:129:16) 
    at node.js:814:3 

UPDATE

嘿,我覺得你都是對的。 $未定義,應該是$ = require('gulp-load-plugins')();。但是現在,我運行scripts,我得到以下錯誤:

[15:24:46] TypeError: undefined is not a function 
    at Gulp.<anonymous> (C:\Users\Myuser\apps\myapp\gulpfile.js:166:13) 
    at module.exports (C:\Users\Myuser\apps\myapp\node_modules\gulp\node_ 
modules\orchestrator\lib\runTask.js:34:7) 
    at Gulp.Orchestrator._runTask (C:\Users\Myuser\apps\myapp\node_module 
s\gulp\node_modules\orchestrator\index.js:273:3) 
    at Gulp.Orchestrator._runStep (C:\Users\Myuser\apps\myapp\node_module 
s\gulp\node_modules\orchestrator\index.js:214:10) 
    at Gulp.Orchestrator.start (C:\Users\Myuser\apps\myapp\node_modules\g 
ulp\node_modules\orchestrator\index.js:134:8) 
    at C:\Users\Myuser\AppData\Roaming\npm\node_modules\gulp\bin\gulp.js:129:2 
0 
    at process._tickCallback (node.js:355:11) 
    at Function.Module.runMain (module.js:503:11) 
    at startup (node.js:129:16) 
    at node.js:814:3 

同樣,另一個模糊的錯誤「undefined是不是一個函數」,這是明確的?缺少$功能嗎?

+0

定義爲'$'在兩個腳本,並在這個問題上,這讓我相信你沒有定義'$'失蹤。 –

+0

'$'應該是什麼? – sma

+0

謝謝你們,你是對的。請參閱上面的更新。 – HGB

回答

2

您可能需要使用gulp-load-plugins包:

var $ = require('gulp-load-plugins')({lazy: true}); 
+0

Ufuk你是對的,請參閱上面的更新。 – HGB