我正在尝试为现有的SystemJS +类型记录应用程序配置AngularJS。
我在加载模块时遇到了问题:当我使用这个语法时:
import module1 from './path-to-module1'
TS编译器很高兴,但是SystemJS找不到这个模块。经过一番调查,我在这文档中找到了SystemJS:
System.defaultJSExtensions = true;
// requests ./some/module.js instead
System.import('./some/module');酷,现在TS编译器和SystemJS都在工作。但是,SystemJS文档显示:
请注意,这是转换为使用显式扩展的兼容性属性,以后将不再推荐。
因此,我认为应该在加载模块时添加一个.js扩展,如下所示(删除'defaultJSExtensions = true‘标志):
import module1 from './path-to-module1.js'
现在SystemJS知道如何加载我的模块了,TS编译器说:
Cannot find module './path-to-module1.js'
我怎样才能让TS弄明白这一点?应该手动将所有模块添加到*.d.ts文件中吗?多么?
10倍!
编辑
我找到了这个职位,我想这应该是我需要做的。我在我的Grunt档案里找到了这个:
typescript: {
build: {
src: ...,
outDir: '...',
reference: 'reference.ts',
options: {
target: 'es5',
sourceMap: false,
declaration: false,
removeComments: false,
experimentalDecorators: true,
module: 'commonjs'
}
}
}但是,将commonjs改为system无助于hree..。
发布于 2015-10-30 21:50:57
别担心,SystemJS文档有点误导.一旦他们删除了defaultJSExtension,您就可以将代码目录标记为包(在systemJS配置中),您可以阅读有关它的信息。
无论如何,没有扩展名的文件名是一个有效的ES6模块导入语法,所以SystemJS必须支持它,正如我所说的,他们将使用不同的配置方式来支持它。
https://stackoverflow.com/questions/33431720
复制相似问题