【问题标题】:webpack angular - module is not a functionwebpack angular - 模块不是函数
【发布时间】:2016-08-10 14:57:14
【问题描述】:

尝试使用 webpack for angularjs 启动和运行。尝试为 /webpack 中的每个文件夹设置不同的角度模块,然后将它们注入我的主应用程序模块定义中。我做错了什么?

遇到这个错误:

Uncaught Error: [$injector:modulerr] Failed to instantiate module mean due to:
Error: [$injector:modulerr] Failed to instantiate module webpack due to:
Error: [$injector:modulerr] Failed to instantiate module {"_invokeQueue":[],"_configBlocks":[],"_runBlocks":[],"requires":[],"name":"photocropper"} due to:
Error: [ng:areq] Argument 'module' is not a function, got Object

入口点:

var angular = require('angular');
ngModule = angular.module('webpack', [
    require('./webpack/photocrop/client')
])

./webpack/photocrop/client/index.js

var angular = require('angular');
module.exports =  angular.module('photocropper', [])

【问题讨论】:

    标签: angularjs webpack


    【解决方案1】:

    请记住,您需要在依赖项中传递模块名称而不是模块

    ngModule = angular.module('webpack', [
        require('./webpack/photocrop/client') //this is an object
    ])
    

    您可以简单地要求该文件,然后像这样按名称注入:

    var firstModule = require('./webpack/photocrop/client')
    
    ngModule = angular.module('webpack', [
        'firstModule' // this should work
    ])
    
    firstModule(ngModule)
    

    【讨论】:

    • 是的,这是有道理的。既然您提到我在其他地方看到您可以这样做require('./webpack/photocrop/client').name,这也可以。
    【解决方案2】:

    我遇到了同样的问题,在我的情况下,它通过更改分配解决了:

    var angular = require('angular');
    

    简单来说:

    require('angular');
    

    原因是这个分配创建了一个新的“角度”变量,它不同于 Angular 本身提供的变量,因此,它没有“模块”属性

    【讨论】:

      猜你喜欢
      • 2017-01-14
      • 2015-12-06
      • 2017-02-02
      • 2019-08-01
      • 1970-01-01
      • 2018-12-08
      • 2018-10-30
      • 2016-10-21
      • 2016-11-01
      相关资源
      最近更新 更多