Angularjs typescript:导入jspm库
因此,我在将jspm包导入typescript时发现的大多数示例都假设我想使用Systemjs在浏览器中加载和解释它们。但是,我更愿意使用Angularjs typescript:导入jspm库,angularjs,typescript,systemjs,jspm,Angularjs,Typescript,Systemjs,Jspm,因此,我在将jspm包导入typescript时发现的大多数示例都假设我想使用Systemjs在浏览器中加载和解释它们。但是,我更愿意使用tsc来构建commonjs模块,并且只导入js代码,因为在我看来,这是一种更通用、更抗错误的方法 因此,我的目录结构如下所示: src/index.ts jspm_packages/... config.js tsconfig.json tsconfig具有以下内容: { "compilerOptions": { "target": "es5"
tsc
来构建commonjs模块,并且只导入js代码,因为在我看来,这是一种更通用、更抗错误的方法
因此,我的目录结构如下所示:
src/index.ts
jspm_packages/...
config.js
tsconfig.json
tsconfig具有以下内容:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"noEmitOnError": true,
"noImplicitAny": false,
"rootDir": "src",
"outDir": "target/app",
"sourceMap": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"declaration": true
},
"exclude": [
"jspm_packages",
"node_modules",
"typings",
"target"
]
}
出于测试目的,我使用jspm安装npm:angular2
安装了angular2,并试图通过import{bootstrap}从'angular2/platform/browser'导入到我的index.ts
中代码>
运行tsc
时,我得到了错误信息
src/index.ts(1,27): error TS2307: Cannot find module 'angular2/platform/browser'.
现在我想知道,我可以让typescript知道jspm包吗?我觉得我已经尝试过了,从tsconfig排除列表中删除了jspm_包,切换到节点模块解析或systemjs模块生成。也许我只是没有找到正确的组合。有没有关于下一步尝试的提示?我也在努力解决这个问题,经过一些研究,我了解到目前还没有好的解决方案
解决办法:
A) 您可以复制依赖项并使用npm进行安装。tsc从npm解析后不应抛出任何错误
B) 更改tsconfig.json并将角度映射到jspm路径。比如说
"baseUrl": ".",
"paths": {
"angular2/*": [
"jspm_packages/npm/angular2@2.0.0-beta.7/*"
],
"rxjs/*": [
"jspm_packages/npm/rxjs@5.0.0-beta.2/*"
]
}
有关完整示例,请参见
请注意,“baseUrl”和“路径”不是官方属性,仅在typescript编译器的beta版上
目前正在此处跟踪该问题:
我发现这太难了,因为intellij还不能识别路径选项。我用另一种方法,将jspm指向node_modules jspm站点的第一行是“jspm是SystemJS通用模块加载器的包管理器,构建在动态ES6模块加载器之上”。我不认为在没有system.js的情况下使用jspm是正确的方法。