代码之家  ›  专栏  ›  技术社区  ›  Vinz243

Grunt usemin向资产转变的路径

  •  0
  • Vinz243  · 技术社区  · 11 年前

    这是我的输入文件(使用yeoman angular)

      <!-- build:js(./) scripts/vendor.js -->
      <!-- bower:js -->
      <script src="bower_components/angular/angular.js"></script>
      ...
      <script src="bower_components/pagedown-semantic-ui/pagedown.js"></script>
      <!-- endbower -->
      <!-- endbuild -->
    

    然后usemin将所有文件编译成一个签名文件 vendor.xxxx.js 并将html替换为:

    <script src="scripts/vendor.f5d9f6b9.js"></script>
    

    但这里的路径是相对的,我想要一条绝对的路径。此外,angular应用程序位于我的节点服务器的子分区(在仪表板/中),所以我使用nignx并重定向所需的内容。我想:

    <script src="/dashboard/scripts/vendor.f5d9f6b9.js"></script>
    

    但是脚本文件本身应该保持不变。

    1 回复  |  直到 11 年前
        1
  •  4
  •   apairet    11 年前

    您的问题与usemin有关,请参阅此处的文档: https://github.com/yeoman/grunt-usemin

    只需将index.html中的注释替换为:

    <!-- build:js(./) /dashboard/scripts/vendor.js -->
    

    这意味着:

    <!-- build:PATH_WHERE_TO_FIND_FILES DESTINATION_PATH -->
    

    要用ngAnnotate替换ngmin,请执行以下操作:

    修改您的Gruntfile:

    替换:

    // ngmin tries to make the code safe for minification automatically by
    // using the Angular long form for dependency injection. It doesn't work on
    // things like resolve or inject so those have to be done manually.
    ngmin: {
      dist: {
        files: [{
          expand: true,
          cwd: '.tmp/concat/scripts',
          src: '*.js',
          dest: '.tmp/concat/scripts'
        }]
      }
    },
    

    通过

    ngAnnotate: {
        options: {
            singleQuotes: true
        },
        dist: {
            files: [{
                expand: true,
                cwd: '.tmp/concat/scripts',
                src: '*.js',
                dest: '.tmp/concat/scripts'
            }]
        }
    },
    

    并替换:

    grunt.registerTask('build', [
        'clean:dist',
        'wiredep',
        'useminPrepare',
        'concurrent:dist',
        'autoprefixer',
        'concat',
        'ngmin',
        'copy:dist',
        'cdnify',
        'cssmin',
        'uglify',
        'filerev',
        'usemin',
        'htmlmin'
    ]);
    

    签署人:

    grunt.registerTask('build', [
        'clean:dist',
        'wiredep',
        'useminPrepare',
        'concurrent:dist',
        'autoprefixer',
        'concat',
        'ngAnnotate',
        'copy:dist',
        'cdnify',
        'cssmin',
        'uglify',
        'filerev',
        'usemin',
        'htmlmin'
    ]);
    

    运行以下两个命令来修改package.json: 1.npm卸载grut ngmin--保存 2.npm安装grut ng注释--保存

    推荐文章