[英]GruntJS - Using one instance for multiple applications
我正在使用Grunt構建JavaScript應用。 現在,我有多個以這種方式工作的應用程序。
我的問題是:是否可以在某個中央目錄上擁有一個grunt實例 ,並將其同時用於多個項目 ?
例如:可以同時為不同項目運行多個grunt-watch嗎?
很高興在這里得到一些澄清。
非常感謝!
您可以在子項目文件夾的“外部”安裝Grunt主項目。
-gruntJs folder
---gruntFile.js
-projectSubFolder
---project_1
-----sass
-----css
---project_2
-----sass
-----css
---project_3
-----sass
-----css
您可以使用動態參數來傳遞任務以定位您擁有的單個項目:
例如:
grunt sass:<projectName>
比在gruntFile.js中,您可以使用以下代碼:
sass: {
dist: {
files: [{
expand: true,
src: ['../projectSubFolder/<%= grunt.task.current.args[0] %>/sass/*.scss'],
dest: '../projectSubFolder/<%= grunt.task.current.args[0] %>/css',
extDot: 'last',
ext: '.css'
}]
}
},
對所有項目執行該任務的一般任務,例如:
grunt.registerTask('sassAll', [ 'sass:project_1', 'sass:project_2', 'sass:project_3' ]);
如果您有多個具有相同任務的項目,那就太好了。 如果您需要拆分任務,則可以創建多個不同的任務,請為其設置目錄/進程。
如果需要更多功能,可以為grunt任務添加多個參數。
watch: {
less: {
files: ['../projectSubFolder/<%= grunt.task.current.args[0] %>/less/*.less',
'../projectSubFolder/<%= grunt.task.current.args[0] %>/less/**/*.less',
'../projectSubFolder/<%= grunt.task.current.args[0] %>/js/*.js'
],
tasks: [
'less:<%= grunt.task.current.args[0] %><%= grunt.task.current.args[1] %>',
'uglify:<%= grunt.task.current.args[0] %><%= grunt.task.current.args[1] %>'
]
},
},
less: {
project_1: {
options: {
cleancss: true,
compress: true
},
files: {
'../projectSubFolder/<%= grunt.task.current.args[1] %>/css/style.min.css': '../projectSubFolder/<%= grunt.task.current.args[1] %>/less/*.less'
}
},
},
grunt watch:<projectName>:<taskName>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.