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