Grunt usemin处理位于js文件中的路径?

6

目前我有几个 HTML 文件,看起来像这样:

 <!-- build:js({.tmp,app}) scripts/moduleX-scripts.js -->
  <script src="scripts/moduleX/moduleXConfig.js"></script>
  <script src="scripts/moduleX/featureX/controller.js"></script>
  <script src="scripts/moduleX/featureX/service.js"></script>
  <script src="scripts/moduleX/featureY/controller.js"></script>
  <script src="scripts/moduleX/featureY/service.js"></script>
  <!-- endbuild -->

 <!-- build:js({.tmp,app}) scripts/moduleY-scripts.js -->
  <script src="scripts/moduleY/moduleYConfig.js"></script>
  <script src="scripts/moduleY/featureW/controller.js"></script>
  <script src="scripts/moduleY/featureW/service.js"></script>
  <script src="scripts/moduleY/featureZ/controller.js"></script>
  <script src="scripts/moduleY/featureZ/service.js"></script>
  <!-- endbuild -->

由于这是一个Angular应用程序,我希望使用ocLazyLoad来管理我的模块,因此我的配置将类似于:

angular.module('MyMainModule', [
  {
    name: 'moduleX',
    files: [
      'scripts/moduleX/moduleXConfig.js',
      'scripts/moduleX/featureX/controller.js',
      'scripts/moduleX/featureX/service.js',
      'scripts/moduleX/featureY/controller.js',
      'scripts/moduleX/featureY/service.js',
    ]
  },
  {
    name: 'moduleY',
    files: [
      'scripts/moduleY/moduleYConfig.js',
      'scripts/moduleY/featureW/controller.js',
      'scripts/moduleY/featureW/service.js',
      'scripts/moduleY/featureZ/controller.js',
      'scripts/moduleY/featureZ/service.js',
    ]
  }
  ])

有没有任何grunt插件可以处理这个.js文件并将files数组替换为经过缩小和修订的版本?

1
嘿@gerasalus,我卡在这个问题上了。你能找到解决方案吗? - nik-v
1个回答

0
你可以使用 grunt-contrib-uglifyjs 来压缩你的文件。
grunt.initConfig({
  uglify: {
    moduleX: {
      files: {
        'scripts/moduleX.min.js': ['scripts/moduleX/*.js']
      }
    },
    moduleY: {
      files: {
        'scripts/moduleY.min.js': ['scripts/moduleY/*.js']
      }
    }
  }
});

唯一需要进行的更改就是在你的模块目录中包含一个声明你的模块的文件。例如,在 scripts/moduleX 目录内,你需要有以下文件:
// scripts/modeulX.js
angular.module('moduleX', []);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接