【问题标题】:Uglify and minify Angular 4 code丑化和缩小 Angular 4 代码
【发布时间】:2018-04-13 18:59:49
【问题描述】:

我在 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", 如何丑化和缩小代码? 谢谢

【问题讨论】:

    标签: javascript node.js webpack bundling-and-minification uglifyjs


    【解决方案1】:

    我建议重构您的代码以使用 Angular CLI,然后使用以下命令进行缩小:

    ng build --prod
    

    使用 .net 核心上的 Web API 项目,一旦你创建一个新的 Angular 应用程序(从与你的解决方案 (sln) 文件相同的目录运行它:

    ng new my-app
    

    然后:

    • angular-cli.json 中,将 outDir 更改为 wwwroot
    • tsconfig.json 中,将 outDir 更改为 ./wwwroot/out-tsc

    此时,ng build 会将所有内容发布到 wwwroot,所以只要包括:

    app.UseDefaultFiles();
    

    Startup.csConfigure 方法中,浏览到 API 的根目录将显示您的 Angular 应用。

    另外,我喜欢包含一个名为 proxy.config.json 的代理文件,它看起来像这样(将端口替换为您的 API 端口):

    {
      "/api/*": {
        "target": "http://localhost:12345",
        "secure": false,
        "logLevel": "debug"
      }
    }
    

    然后,我修改 package.json 中的 start 脚本,如下所示:

    "start": "ng serve --proxy-config proxy.config.json"
    

    此时,您可以调试您的 API,只需从命令行运行 npm start,充分利用 Angular CLI。然后,当你想释放时,运行:

    ng build --prod
    

    此外,您可以在构建 Web API 项目时修改 .csproj 文件以构建和缩小 Angular 应用程序,如下所示:

    <Target Name="Build Angular" BeforeTargets="Build">
      <Message Text="* * * * * * Building Angular App * * * * * *" Importance="high" />
      <Exec Command="ng build --prod" />
    </Target>
    

    我个人认为 Angular 是一个全面的框架。我看不出将它与 Razor 一起使用的价值。如果您想要渐进式增强,请使用 React!

    【讨论】:

    • 嗨。我是新手,请耐心等待。我创建了一个新的 Angular cli 项目,我只得到了文件 .angular-cli.json 并放入了我的 VS 2017 Angular按照你的步骤..但我最终得到这个错误找不到模块'@angular/compiler-cli'。我正在寻找更多的丑化代码。谢谢
    • 你好,你可以尝试只创建一个空白的 asp.net core Web Api 项目(无角度),然后执行上述步骤吗?
    • 嗨。我创建了一个新项目,这次出现了这个错误:命令“ng build --prod”退出,代码1没有其他错误信息。React怎么样,比Angular?你能提供一个起点来获取更多信息吗?谢谢
    猜你喜欢
    • 2013-02-24
    • 2016-02-13
    • 2017-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多