错误:在Angular 2中加载外部模块时,require不是函数

时间:2016-02-29 22:42:48

标签: angular dragula

ng2-dragula看起来很酷但是我很难为我的角度2项目设置它。我使用system.js作为模块预加载器,其配置为:

System.config({
    packages: {        
      app: {
        format: 'register',
        defaultExtension: 'js'
      },
      'ng2-bootstrap': {},
      'ng2-dragula': { defaultExtension: 'js' }
    },
    map: {
      'dragula': 'node_modules/dragula',
      'ng2-bootstrap': 'node_modules/ng2-bootstrap',
      'ng2-dragula': 'node_modules/ng2-dragula',
      'moment': 'node_modules/moment/moment.js'
    }
});

我的tsconfig.json

{
  "compilerOptions": {
    "target": "es5",
    "module": "system",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false,
    "watch": true
  }
}

我将它加载到我的组件中,如下所示:

import {DragulaService, Dragula} from 'ng2-dragula/ng2-dragula'

@Component({
  selector: 'my-cmp',
  viewProviders: [DragulaService],
})


@View({
  template: '<div>Hey</div>',
  directives: [Dragula]
})

我做错了什么,以便在浏览器中出现以下错误:

Error: require is not a function(…) angular2-polyfills.js:1243

1 个答案:

答案 0 :(得分:2)

您可能正在加载一些通过commonjs标记编译为<script src="some-module.js">模块的脚本。您应该使用System.import("some-module.js")删除它们。有关类似问题的说明,请参阅this answer