webpack.ProvidePlugin angular

Leo*_*eon 8 angularjs webpack

我正在尝试使用角度NG6启动器.在其源代码中,import angular from angular几乎写入了每个js文件.所以我试试这个:

 new webpack.ProvidePlugin({
      // $: "jquery",
      // jQuery: "jquery",
      // "window.jQuery": "jquery",
      'angular': 'angular',
    }),
Run Code Online (Sandbox Code Playgroud)

但它无法奏效.我不知道为什么,以及如何解决这个问题.

Mot*_*tin 6

这里解决屏幕截图中的第一条错误消息"angular.module不是一个函数":Angular 1在没有垫片的情况下与webpack不兼容(参见https://github.com/webpack/webpack/issues/2049) .试试这个webpack loader配置:

module: {
    loaders: [
        /*
         * Necessary to be able to use angular 1 with webpack as explained in https://github.com/webpack/webpack/issues/2049
         */
        {
            test: require.resolve('angular'),
            loader: 'exports?window.angular'
        },
    ]
},
plugins: [
    new webpack.ProvidePlugin({
        'angular': 'angular',
    }),
],
Run Code Online (Sandbox Code Playgroud)

这应该正确初始化角度对象,而不是将其设置为空对象(没有名为module的属性)的默认操作.


小智 -1

你需要这样使用: var app = angular.module('RequiredName', ['ui.router','ui.bootstrap']);

并在应用程序文件上使用它并调用您的应用程序模块,就像您将在app.factory或app.controller或...中的app.js文件中使用任何函数或方法的项目部分一样。