簡體   English   中英

笨拙的Usemin轉變了通往資產的道路

[英]Grunt usemin transform path to assets

這是我的輸入文件(使用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應用程序位於我的節點服務器的子目錄中(在dashboard /中),因此我正在使用nignx並重定向所需的內容。 我想要:

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

但是腳本文件本身應該保持不變。

您的問題與usemin有關,請參見此處的文檔: https : //github.com/yeoman/grunt-usemin

只需將index.html中的注釋替換為:

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

意思是:

<!-- build:PATH_WHERE_TO_FIND_FILES DESTINATION_PATH -->

要將ngmin替換為ngAnnotate,請執行以下操作:

修改您的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卸載grunt-ngmin --save 2. npm安裝grunt-ng-annotate --save

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM