javascript - Webpack 和 angular 1 uglify 插件

标签 javascript angularjs webpack

当我使用 uglify js 插件时,我遇到了无法实例化模块的错误; 当我不包含任何插件时它工作得很好,我怎样才能缩小它以用于生产? 这是我的 webpack 配置:

const webpack = require('webpack');

module.exports = {
    entry: './src/app.js',
    vendor: ['angular'],
    output: {
        path: './dist',
        filename: 'bundle.js'
    },
    module: {
        loaders: [
            {
                test: /\.css$/,
                loader: 'style-loader!css-loader'
            }
        ]
    },
    plugins: [
        new webpack.optimize.UglifyJsPlugin()
    ],
    watch: true
};

我的 app.js:

var angular = require('angular');
require('angular-ui-router');
global.jQuery = require('jquery');
require('bootstrap');
require("./css/style.css");

angular.module('todoApp', ['ui.router']).config(require('./routes'));

require('./services/todoService');

require('./controllers/mainController');
require('./controllers/homeController');
require('./controllers/aboutController');

最佳答案

据推测,您没有关注 dependency injection guide关于依赖注释。 您有几个选择:

  1. controllers/mainController 中,指定 mainController.$inject = ['$scope', '$http'];(根据需要进行调整)。
  2. 使用ng-annotate-loader .根据您的代码风格,您可能必须使用 /*@ngInject*/
  3. 注释构造函数

为了在开发时不错过依赖注解,您可能需要启用 strict dependency injection .

关于javascript - Webpack 和 angular 1 uglify 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41759423/

相关文章:

node.js - 如何将 d3 v4/v5 模块导入 Node 项目但保持 D3 v3 命名空间样式 (d3.)?

javascript - 如何使用 jQuery 单击按钮并弹出警报消息

javascript - 表格行高于 CSS 指定的行数(仅限 iPhone)

angularjs - 通过 ng 单击多个元素来切换类

javascript - AngularJS:输入字段为空时禁用按钮

javascript - ng-animate 没有按预期工作

javascript - Webpack 不会将我使用的图像复制到 react 组件中

webpack - HTML 作为 Webpack 入口点

javascript - TypeScript 中的箭头函数和继承

javascript - Jquery 计算元素中的字符并给太短的字符填充