Uglify和缩小Angular 4代码
我在VS 2017中使用Asp Core + Angular 4模板+ webpack。我已经发布了我的应用程序..并期待ClientApp / dist / main-server.js我看到内容不uglify和minify ..这是喜欢这个
... ConfirmComponent.prototype.ngAfterViewInit = function () { try { $('.modal').removeClass('fade'); setTimeout(function () { $('.modal').addClass('fade'); }, 500); } catch (exception) { } }; ...
在webpack.config.vendor.js我可以看到一个插件调用:
.... plugins: [ extractCSS, new webpack.DllPlugin({ path: path.join(__dirname, 'wwwroot', 'dist', '[name]-manifest.json'), name: '[name]_[hash]' }) ].concat(isDevBuild ? [] : [ new webpack.optimize.UglifyJsPlugin() //HERE ]) }); ....
在package.json我已经添加: "uglifyjs-webpack-plugin": "1.0.1",
如何uglify和缩小代码? 谢谢
我build议重构你的代码来使用Angular CLI,然后用下面的代码缩小:
ng build --prod
在.net core上创build一个Web API项目后,一旦创build了一个新的Angular App(从解决scheme(sln)文件所在的同一目录运行该项目:
ng new my-app
然后:
- 在angular-cli.json中 ,将outDir更改为wwwroot
- 在tsconfig.json中 ,将outDir更改为./wwwroot/out-tsc
在这一点上, ng build将把所有的东西都发布到wwwroot ,所以只要你包含:
app.UseDefaultFiles();
在Startup.cs的configuration方法中,浏览到您的API的根将显示您的Angular应用程序。
此外,我想包含一个名为proxy.config.json的代理文件,它看起来像这样(用您的API端口replace端口):
{ "/api/*": { "target": "http://localhost:12345", "secure": false, "logLevel": "debug" } }
然后,我修改package.json中的启动脚本,如下所示:
"start": "ng serve --proxy-config proxy.config.json"
此时,您可以debugging您的API,只需从命令行运行npm start ,充分利用Angular CLI。 然后,当你想释放,运行:
ng build --prod
另外,您可以修改.csproj文件,以在构buildWeb API项目时构build和缩小angular度应用程序,如下所示:
<Target Name="Build Angular" BeforeTargets="Build"> <Message Text="* * * * * * Building Angular App * * * * * *" Importance="high" /> <Exec Command="ng build --prod" /> </Target>
我个人认为Angular是一个全能框架。 我没有看到使用Razor的价值。 如果你想渐进增强,使用React!