javascript - 动态更新 Grunt 配置字段

标签 javascript node.js gruntjs

我在单独的目录中有几个项目,并希望以相同的方式构建它们。 我想从任务中定义项目名称(作为参数)。 Grunt 任务将使用这个项目路径作为根路径。但是我有几个子文件夹并且不想手动更新它我只想更新项目。有机会吗?

grunt.initConfig({
  paths : {
    project : null,
    projectStylesheets : '<%= paths.project %>/stylesheets',
    // ...
  }
});   

grunt.registerTask('server', function(project) {
  // -> project = 'some_name'
  var paths = grunt.config.get('paths');
  paths.project = project;
  grunt.config.set('paths', paths);
  // -> { project: 'some_name', projectAssets: 'stylesheets' }
});

我正在考虑在他的配置之外使用 JS 函数,但不确定这是最佳实践。

最佳答案

尝试使用 registermultitask - http://gruntjs.com/api/grunt.task#grunt.task.registermultitask

grunt.initConfig({
    projectName1 : {
        projectStylesheets: 'path_to_stylesheets1',
    },
    projectName2 : {
        projectStylesheets: 'path_to_stylesheets2',
    }
})

grunt.registerMultiTask('server', function() {
    var path = grunt.data.projectStylesheets;    
    //operations with stylesheets
});

For build use 
grunt server:projectName1
grunt server:projectName2

关于javascript - 动态更新 Grunt 配置字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16444490/

相关文章:

javascript - 如何获取用户向上获取的新更新文本和新文本下方的旧文本?

javascript - Node 库独立示例,//错误事件,ENOENT

node.js - 使用 connect-mongo 时处理数据库错误

node.js - 我使用 Yeoman/Grunt 和 Node.js 创建了一个网站只是为了构建我的应用程序,我该如何使用预渲染或 seo4ajax 并对其进行索引?

javascript - grunt-ssh 给出 - 错误 : no such file while upload

Javascript:播放预加载屏幕直到加载特定内容

JavaScript:无法启动 moment.js

javascript - 需要替换变量值格式的正则表达式模式

javascript - 使用 Node 和 jsdom 爬虫站点时内存不足

javascript - browserify/watchify 运行后触发 grunt 任务