繁体   English   中英

GruntJS-将一个实例用于多个应用程序

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM