gpt4 book ai didi

angularjs - typescript :导入jspm库

转载 作者:搜寻专家 更新时间:2023-10-30 20:40:58 25 4
gpt4 key购买 nike

所以我在将 jspm 包导入 typescript 时发现的大多数示例都假设我想使用 Systemjs 在浏览器中加载和解释它们。但是,我更愿意使用 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 install npm:angular2 安装了 angular 2,并尝试通过 import { bootstrap } 将其导入到我的 index.ts 中'angular2/平台/浏览器';

当运行 tsc 时,出现错误

src/index.ts(1,27): error TS2307: Cannot find module 'angular2/platform/browser'.

现在我想知道,我可以让 jspm-packages 为 typescript 所知吗?我觉得我尝试了所有方法,从 tsconfig 排除列表中删除 jspm_packages,切换到节点模块解析或 systemjs 模块生成。也许我只是还没有找到合适的组合。关于下一步尝试什么的任何提示?

最佳答案

我也在为同样的问题苦苦挣扎,经过一些研究,我了解到目前还没有好的解决方案来解决这个问题。

解决方法:

A) 您可以复制您的依赖项并使用 npm 安装它。 tsc 不应抛出任何错误,因为它是从 npm 解析的。

B) 更改您的 tsconfig.json 并将 angular 映射到 jspm 路径。例如

"baseUrl": ".",
"paths": {
"angular2/*": [
"jspm_packages/npm/angular2@2.0.0-beta.7/*"
],
"rxjs/*": [
"jspm_packages/npm/rxjs@5.0.0-beta.2/*"
]
}

参见 https://github.com/frankwallis/plugin-typescript/tree/master/examples/angular2一个完整的例子。

请注意,“baseUrl”和“paths”不是官方属性,仅适用于 typescript 编译器的测试版。

目前正在此处跟踪问题: https://github.com/Microsoft/TypeScript/issues/6012

关于angularjs - typescript :导入jspm库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35778684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com