我试图将angular2-moment库引入到我的angular2项目中,但似乎无法让SystemJS合作。
<script src="lib/es6-shim.min.js"></script>
<script src="lib/angular2-polyfills.js"></script>
<script src="lib/traceur-runtime.js"></script>
<script src="lib/system-csp-production.src.js"></script>
<script src="lib/Reflect.js"></script>
<script>
System.config({
map: {
'angular2-moment': '/node_modules/angular2-moment',
},
packages: {
'/node_modules/angular2-moment': {
'main': 'index'
}
}
});
</script>
<script src="lib/angular2.js"></script>
<script src="lib/router.js"></script>
<script src="lib/http.js"></script>
<script src="lib/Rx.js"></script>
<script>
System.import('app').catch(console.log.bind(console)); //loads my app
</script>我的应用程序在这个配置下工作正常,直到我尝试从我的应用程序内的angular2-moment库中导入。
import {TimeAgoPipe} from 'angular2-moment';这将导致以下控制台错误:
Uncaught TypeError: require is not a function
Error: (SystemJS) http://website.dev/node_modules/angular2-moment/index.js did not call System.register or AMD define. If loading a global module configure the global name via the meta exports property for script injection support乍一看,这看起来像是SystemJS期望一个不同的模块类型,但我尝试了像添加格式:“esm”或"common“到包配置中,但都无济于事。错误是正确的(模块中没有System.register,而是一个导出函数),但我不确定如何修复它。
angular2-moment的index.js如下:
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
__export(require('./CalendarPipe'));
__export(require('./DateFormatPipe'));
__export(require('./DurationPipe'));
__export(require('./FromUnixPipe'));
__export(require('./TimeAgoPipe'));
//# sourceMappingURL=index.js.map在正确的方向上的任何步骤都是非常感谢的!
发布于 2016-08-03 11:18:52
您正在尝试使用'/node_modules/angular2-moment‘访问'angular2-moment’包,这似乎是不正确的,
如下所示更新您的脚本配置
<script>
System.config({
map: { 'angular2-moment': '/node_modules/angular2-moment' },
packages: {
'angular2-moment': { 'main': 'index' }
}
});
</script>发布于 2016-08-08 16:13:16
如果你克隆了angular2-moment,然后编译它来使用你选择的模块类型,会怎么样?看起来它是在做一个commonjs,但是你有来自node的服务器端脚本。
https://stackoverflow.com/questions/38671902
复制相似问题