asume我们有一个名为REPO的存储库,其中包括几个grunt项目。假设我们想要这个结构:
ROOT
-- bower_components
-- node_modules
-- project_1
-- project_2
-- project_3 etc现在的问题是,我需要为每个项目提供一个不同的gruntfile.js,这样我就可以拥有一个不同的分布式精简js文件,不同的任务等等。
我现在得到的解决方案是,每个项目文件夹都有自己的node_module文件夹,其中包含所有需要的模块。
所以我得到了这个,我想像上面的模式一样改变它。
ROOT
-- bower_components
-- project_1
---- node_modules
-- project_2
---- node_modules
-- project_3
---- node_modules现在每个gruntfile看起来都是这样的:
function config(name) {
return require ('./tasks/' + name + '.js');
}
module.exports = function (grunt){
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
jshint: config('jshint'),
concat: config('concat'),
uglify: config('uglify'),
cssmin: config('cssmin'),
jsbeautifier: config('jsbeautifier'),
watch: {
options: {livereload: true},
files: ['index.html', 'app/views/**/*.html', 'app/css/*.css', 'js/*.js'],
tasks: ['jshint']
},
karma: {
unit: {
configFile: 'test/test.conf.js'
}
}
});
//load plugins
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-jsbeautifier');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-karma');
//tasks
grunt.registerTask('dist', ['jshint', 'concat', 'uglify', 'cssmin', 'jsbeautifier']);
grunt.registerTask('default', ['watch']);
};我可以为每个NpmTask添加一个路径,而不是在我的存储库中为每个项目安装模块吗?
如果你需要更多的信息或者我的英语不好,请问我任何问题,我会更新我的问题。
谢谢
发布于 2015-06-03 18:47:07
您可以使用load-grunt-parent-tasks来做到这一点。
我认识到我没有使用这个插件,但我想我会帮助你的。
https://stackoverflow.com/questions/30617174
复制相似问题