使用Angular Cli自定义生成的文件名

时间:2016-09-27 07:37:36

标签: angular angular-cli

使用Angular-cli时,构建的文件名为main。[hash] .bundle.js使用时ng build -prod 是否可以从此文件名中删除哈希表。那么只是main.bundle.js

7 个答案:

答案 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'