簡體   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