[英]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.