使用Angular-cli时,构建的文件名为main。[hash] .bundle.js使用时ng build -prod
是否可以从此文件名中删除哈希表。那么只是main.bundle.js
?
答案 0 :(得分:38)
现在支持从beta.25开始的命令选项。
这允许在构建期间通过新的构建命令选项
--output-hashing
配置输出文件名哈希。有四种可能的值:
none
:未执行哈希处理的文件添加哈希值
media
:只为通过[url | file] -loaders
bundles
:只为输出包添加哈希
all
:为媒体和包添加哈希none是开发目标的默认值。 all是生产目标的默认值。
更多详情here。
答案 1 :(得分:7)
根据我的理解,hash
用于生成构建,因此不会遇到浏览器缓存问题,并且用户在使用新部署之前不必清除缓存。
我怀疑angular-cli
团队会给我们一个选项来配置它,我们必须等待检查。
同时,如果您想自定义构建过程,您可以自己构建webpack配置。
此外,CLI团队已经表示会有一些webpack插件可以帮助创建自己的webpack配置。结帐here。
更多详情here, WEBPACK: AN INTRODUCTION。
希望这会有所帮助!!
答案 2 :(得分:6)
我在package.json文件中为生产版本添加了以下脚本元素。
"scripts": {
"prod" : "ng build --prod --output-hashing=none --base-href=./"
}
然后运行
npm run prod
将构建没有哈希的dist文件夹,并且还包含./ as base-href,以便相对于当前目录加载文件。
答案 3 :(得分:1)
尝试使用: ng build --prod --output-hashing none
答案 4 :(得分:0)
目前你无法使用cli执行此操作,但是你可以使用它来使用标准的Webpack。
在项目中运行ng eject
,它将构建适当的Webpack配置和脚本。
你可以在GitHub上的Wiki上阅读它。
https://github.com/angular/angular-cli/wiki/eject
一旦你得到了配置,你可以做@tallaxes建议的那些。
答案 5 :(得分:0)
另一种选择是在angular.json中进行配置
"outputHashing": "none"
答案 6 :(得分:-2)
从[chunkhash]
中的以下行中删除angular-cli/models/webpack-build-production.js
(如果修补,则在node_modules
下,packages
下如果分叉):
filename: '[name].[chunkhash].bundle.js',
sourceMapFilename: '[name].[chunkhash].bundle.map',
chunkFilename: '[id].[chunkhash].chunk.js'