0
我試圖將所有腳本編譯成單個main.js
文件,然後我可以鏈接到我的索引文件。問題是我所有的腳本文件被連接在一起,然後將添加到main.js
文件中,所以如果我保存3次,我基本上會將所有腳本連接3個副本並放入main.js
文件中。將級聯文件放入main.js只是保持堆疊而不是清除文件,然後添加代碼
我想每次保存並刪除main.js
文件,然後運行連接,或者在添加內容之前清理文件。現在,如果我嘗試使用del
模塊刪除文件,則會收到一個錯誤消息,指出我無法在不強制執行此操作的情況下將文件從工作目錄中刪除。如果可能的話,我想避免強制這樣做。
我覺得必須有這樣做的更優雅的方式..
這裏是我的腳本任務:
// Concat and compile our JS into a minified dist file
gulp.task('scripts', function() {
return gulp.src('../app/public/assets/scripts/**/*.js')
.pipe(jshint())
.pipe(jshint.reporter('default'))
.pipe(concat('main.js'))
//.pipe(del(['../app/public/assets/scripts/main.js'])) <-- Doesn't work without forcing
.pipe(gulp.dest('../app/public/assets/scripts'))
.pipe(gulpif(flags.build, gulp.dest('../app/dist/assets/scripts')))
.pipe(rename({ suffix: '.min' }))
.pipe(uglify())
.pipe(gulpif(flags.build, gulp.dest('../app/dist/assets/scripts')))
.pipe(notify({ message: 'Finished compiling scripts' }));
});
雖然這種情況發生在手錶任務上,但沒有構建,構建沒有問題,但我需要在每個手錶上進行連接,因此我不必包含多個文件。 – Chrillewoodz
我用watch任務編輯了答案。這有幫助嗎?對不起,但後來我不明白這個問題:) – Mulder90
問題是main.js文件沒有被清空之前,新的代碼進來。所以你得到重複的代碼在文件中。而你的回答似乎並沒有處理這個問題 – Chrillewoodz