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