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.csconfiguration方法中,浏览到您的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!