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



ng2-dragula看起来很酷,但我很难为我的Angular 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

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

相关内容

  • 没有找到相关文章

最新更新