带有CLI的Angular 2 - 用于生产

ben*_*siu 26 production build angular-cli angular

我刚刚安装了angular-cli 1.0.0.beta.17(最新的一个),启动新项目,能够在端口4200上提供项目而没有任何问题 - 只需标准的"app works!" 信息.

但是,当我尝试使用命令构建生产这个空的通用应用程序时,ng build --prod我根本没有创建main.*.js文件,并且有几个警告屏幕,例如:

  • 删除未使用的功能......
  • 初始化中的网站效应......
  • 等等

这是一个全新的空项目 - 我没有机会打破任何东西......

如何建立生产版本?

Joe*_*oeF 36

根据Angular-cli的github wiki,这些是启动开发和生成构建的最常用方法

# Prod - these are equivalent
ng build --configuration=production
ng build --c=production
ng build --prod=true

# Dev - and so are these
ng build --configuration=development
ng build --c=development
ng build --prod=false
ng build
Run Code Online (Sandbox Code Playgroud)

有不同的默认标志会影响--dev vs --prod构建.

# Prod these are equivalent
ng build --target=production --environment=prod
ng build --prod --env=prod
ng build --prod

# Dev and so are these
ng build --target=development --environment=dev
ng build --dev --env=dev
ng build --dev
ng build
Run Code Online (Sandbox Code Playgroud)

--prod 还设置以下不可标记的设置:

  • 如果已配置,则添加服务工作者.angular-cli.json.
  • process.env.NODE_ENVproduction 值替换 模块(这对于某些库来说是必需的,比如反应).
  • 在代码上运行UglifyJS.

我需要做一些故障排除才能让AOT正常工作.我跑的时候:

ng build --prod --aot = false

我会得到一个类似的错误

Flag                 --dev      --prod
--aot                false      true
--environment        dev        prod
--output-hashing     media      all
--sourcemaps         true       false
--extract-css        false      true
Run Code Online (Sandbox Code Playgroud)

最初,我不得不做一些项目重构才能让AOT工作.但是,如果遇到此错误,它们可能是一个修复程序.尝试

npm i enhanced-resolve@3.3.0

https://github.com/angular/angular-cli/issues/7113


omt*_*t66 5

尝试使用:ng build --target = production这应该起作用。