javascript - 使用 AngularJS 和 Webpack 2 进行缩小

标签 javascript angularjs minify webpack-2 uglifyjs

我想连接包含我的 angularjs 代码的 js 文件列表并对其进行 uglify。我想以有序的方式连接它以避免“that .... is not defined”错误。

我还从 github 下载了一些库并放在“lib”文件夹中。我想在 vendor.bundle.js 中连接这些库。

这是文件夹结构:

/app
    /feature1
        feature1.controller.js
    /feature2
        feature2.controller.js
    /...
    app.module.js
/libs
    /angular
        angular.min.js
    /angular-ui-router
        angular-ui-router.min.js
    /angular-material
        angular-material.min.js
        angular-material.min.css

    /...
app.js
vendor.js

在 app.js 里面我有这个:

require('./app/app.module.js');
require('./app/feature1/feature1.controller.js');
require('./app/feature2/feature2.controller.js');
...

在 vendor.js 里面我有这个:

require('./libs/angular/angular.min.js');
require('./libs/angular-ui-router/angular-ui-router.min.js');
require('./libs/angular-material/angular-material.min.js');
require('./libs/angular-material/angular-material.min.css');
...

这是 webpack.config.js:

const path = require('path');
const webpack = require('webpack');
const UglifyJSPlugin = require('uglifyjs-webpack-plugin');

module.exports = {
    context: __dirname,
    entry: {
        app: "./app.js",
        vendor: "./vendor.js",
    },    
    output: {
        path: path.resolve(__dirname, "app"),
        filename: "app.bundle.js"
    },
    module: {
        rules: [
            {
              test: /\.css$/,
              use: [ 'style-loader', 'css-loader' ]
            }
          ]
    },
    plugins: [
        new webpack.optimize.CommonsChunkPlugin({
            name: "vendor",
            filename:"./app/vendor.bundle.js"
        }),
        new UglifyJSPlugin({
            compress: true,
            sourceMap: false,
            mangle: true
        })
    ]
};

此配置的结果是 app.bundle.js 中的连接未排序,因此存在未定义的函数等...

并且 vendor.bundle.js 没有创建,因为它会产生很多错误。

使用拆分的个人代码和 vendor 代码进行缩小的正确方法是什么?

最佳答案

您是否尝试过使用命令 wepack -p 在 native 执行此操作?

如果它不起作用,您可以尝试将 Uglify 修改为:

new UglifyJSPlugin({
    compress: true,
    sourceMap: false,
    mangle: false // modified
})

关于javascript - 使用 AngularJS 和 Webpack 2 进行缩小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43386731/

相关文章:

javascript - 无法使用 Angular 中的 $location 服务更改 URL 路径

AngularJS - 具有功能的克隆元素

javascript - 我什么时候应该合并我的 JS 和 CSS 文件?

javascript - 在 IE 中从 Javascript 调用 Silverlight 代码

javascript - 如何创建pugjs组件?

javascript - 用于模拟鼠标输入的 Angular Directive(指令)?

javascript - 使用 JS/CSS 缩小工具作为 python distutils 命令?

javascript - 源代码丢失。提供缩小文件。如何取消压缩文件。

Javascript 函数每 X 秒重新加载一个页面?

javascript - 如何使用 Go 驱动程序或 Golang 在 Mongodb 中插入 javascritpt 函数