我有演示项目我即将编译到ES5,启用ES2015模块并tslib用于外部TS助手:
的package.json
{
"name": "foo",
"scripts": {
"build": "tsc"
},
"dependencies": {
"tslib": "^1.9.3"
},
"devDependencies": {
"typescript": "^3.1.3"
}
}
Run Code Online (Sandbox Code Playgroud)
tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "es2015",
"outDir": "./lib",
"rootDir": "./src",
"importHelpers": true,
"strict": true,
"experimentalDecorators": true
}
}
Run Code Online (Sandbox Code Playgroud)
SRC/index.ts
function a(target: any) {
return target;
}
@a
export class Foo {}
Run Code Online (Sandbox Code Playgroud)
这会导致错误:
src/index.ts:5:1 - 错误TS2354:此语法需要导入的帮助程序,但找不到模块"tslib".
虽然lib/index.js是正确编译:
import * as tslib_1 from "tslib";
function a(target) {
return target;
}
var Foo = /** @class */ (function () {
function Foo() {
}
Foo = tslib_1.__decorate([
a
], Foo);
return Foo;
}());
export { Foo };
Run Code Online (Sandbox Code Playgroud)
怎样才能解决这个问题?
Pau*_*ood 45
Noob错误(我刚才做的).尝试:
npm install tslib
Run Code Online (Sandbox Code Playgroud)
要么
npm i
Run Code Online (Sandbox Code Playgroud)
个人在周五签约之前我做了一个git clean -fxd,但没有npm i这样所有的npm包丢失了.卫生署!
for*_*nee 32
就我而言,删除或设置importHelpers编译器选项即可false解决该问题。
{
"compilerOptions": {
...
"importHelpers": false, // Or remove this
...
}
}
Run Code Online (Sandbox Code Playgroud)
小智 23
就我而言,tslib 已经安装,我只在 1 个组件上看到此错误,而其他一切都工作正常 - 构建和功能。我刚刚重新启动我的 vscode,它就消失了。因此,如果在完成其他人建议的操作后错误仍然存在,请尝试一下。
zok*_*zok 20
我的问题是编辑器使用的 TypeScript 版本与项目不同。
要解决这个问题:
或者单击底部栏中的版本号,如果它显示在那里:
小智 19
将下面的行添加到 tsconfig.json
"compilerOptions": {
//...rest parameters
"baseUrl": "./",
"paths": {
"tslib" : ["path/to/node_modules/tslib/tslib.d.ts"]
},
Run Code Online (Sandbox Code Playgroud)
小智 9
我的错误似乎是偶发的,但可能是由编辑“node_modules”文件夹中的文件引起的。
我删掉了
跑...“npm install”
现在正在工作。
注意:我尝试在删除文件之前运行“npm install”,但这并没有解决问题。
正如参考所述,模块分辨率仅针对 设置为节点模式,针对"modules": "commonjs"设置为经典模式"modules": "es2015":
有两种可能的模块解析策略:Node 和 Classic。您可以使用 --moduleResolution 标志来指定模块解析策略。如果未指定,默认为 Classic for --module AMD | 系统 | ES2015 或 Node 否则
由于经典模式不知道node_modules,编译器无法解析tslib模块。
moduleResolution 应该为 ES2015 模块显式设置:
...
"module": "es2015",
"moduleResolution": "node",
...
Run Code Online (Sandbox Code Playgroud)
更新package.json中tslib的依赖项和devDependency
{
dependencies:{
"tslib": "1.10.0",
},
devDependencies:{
"tslib": "1.10.0",
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26748 次 |
| 最近记录: |