2
的Javascript包管理所以在我的項目我的javascript的有涼亭和咕嚕
- 第三方庫(jQuery的,引導,jQuery插件等)
- 自定義庫包含在HTML
- 代碼嵌入在線in
<script>$(function(){});</script>
漂亮的標準東西。
我的目標是找到一種可靠的自動化方法,將我所有單獨的JavaScript文件(約25個文件)縮小爲一個文件進行生產。
我已經安裝了bower
,它似乎是讓我的外部庫保持最新的好方法。我也安裝了grunt
。我在grunt中使用了一個bower插件,將所有下載的文件複製到一個指定的目錄,然後concat
可以在該目錄中查找來合併它們,最後uglifyJS
將文件縮小。再次,它似乎是一個標準的咕嚕聲設置。
的涼亭插件將創建一個像
文件夾vendorjs
- bootstrap.js
- jquery.js
- etc
concat
然後從這個目錄讀取,而作爲文件是按字母順序將jQuery的之前不正確的順序將它們結合起來,引導,所以它不會有用。
我知道RequireJS,但它似乎是爲了我的需要矯枉過正。而且似乎我需要重寫所有的js以符合RequireJS的要求。
是否有一些配置我錯過了,這將有助於我的問題?我是否以錯誤的方式解決了這個問題?
編輯這是我更清晰Gruntfile.js。
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
bower: {
dev: {
dest: 'vendorjs',
options: {
stripJsAffix: true
}
}
}
concat: {
options: {
separator: ';'
},
dist: {
src: ['vendorjs/*.js'],
dest: 'vendor.js'
}
},
uglify: {
dist: {
files: {
'../../public/js/admin/vendor.min.js': ['vendor.js']
}
}
}
});
};
感謝您的回覆,問題是,我試圖自動執行一切,因此任何依賴關係都會自動處理,所以我不想指定確切的文件。但這可能是錯誤的方法。 – JasonM
你不能雙方都有。要麼你指定要麼你不指定(這會導致字母順序)。聽起來像RequireJS是你正在尋找的東西,但它有它自己的缺點。 –
是的,這是一種感覺,我正在走向死衚衕,非常感謝您在澄清情況方面的幫助。 – JasonM