我看到代码有一些对tslib
和importHelpers
引用,所以我认为这应该透明地工作。 如果没有,我会很高兴知道缺少什么。
以下是重现方法:
安装的软件包:
$ npm ls --depth=0
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]
tsconfig.json
:
{
"compilerOptions": {
"target": "es5"
}
}
rollup.config.js
:
import typescript from 'rollup-plugin-typescript2';
export default {
entry: './main.ts',
plugins: [
typescript()
]
}
main.ts
:
import {Foo} from './module';
console.log("HERE" + Foo);
和module.ts
:
export class Foo {}
export class Bar extends Foo {}
运行汇总时如下:
./node_modules/.bin/rollup -c rollup.config.js
我收到此错误:
🚨 rpt2: module.ts (3,18): semantic error TS2354 This syntax requires an imported helper but module 'tslib' cannot be found.
module.ts
我认为这是因为extends
语法需要来自tslib
的__extends
助手,但打字稿找不到tslib
。
预期的结果是所需的助手成为包的一部分。
谢谢。
这绝对应该透明地工作(并且在我自己的项目中对我有用)。 我会试试你的确切设置,谢谢。
看起来您需要在 tsconfig 中使用"moduleResolution": "node"
,否则 typescript 在 node_modules 中找不到 tslib。
不确定这是否会对非节点设置造成问题,但我还没有听说过任何有关这种情况的消息。
事实上,使用"moduleResolution": "node"
,它可以按预期工作。 阅读https://www.typescriptlang.org/docs/handbook/module-resolution.html ,我认为"node"
更适合我,所以我就用它。 我可以建议在自述文件中提及/推荐它吗?
我看到您为"classic"
案例打开了#14,所以我将关闭它。 谢谢!
不确定其他人是否面临与我相同的问题。
我遇到了这个问题https://github.com/rollup/rollup-plugin-typescript/issues/109 ,因此我切换到这个 repo,但后来我收到了这个tslib
错误。
因为 tsconfig 已经是"moduleResolution": "node"
如果你发布你的 tsconfig、rollup config 和 package.json,有人可能会发现一些错误。
@hueitan我在已经拥有"moduleResolution": "node"
时遇到了同样的问题。 通过将"tslib": "^1.10.0"
到我的 devDependencies 来修复它。
添加tslib
作为依赖项也适用于我。 虽然不是很好的解决方案
tslib
已经是rollup-plugin-typescript2
的依赖项,它是如何在您的系统中丢失的?
你使用npm install
还是别的什么?
就我而言,我正在使用纱线。 删除 yarn.lock 并重新安装新的,我不需要在 package.json 中明确提及tslib
我可以在以下 repo 中重现它:
https://github.com/giniedp/tweak-ui
git clone [email protected]:giniedp/tweak-ui.git
cd tweak-ui
git checkout v0.1.0
现在编辑package.json
并删除tslib
。 然后做
yarn install
yarn run build
你应该遇到
This syntax requires an imported helper named '__spreadArrays', but module 'tslib' has no exported member '__spreadArrays'
现在删除yarn.lock
然后
yarn install
yarn run build
运行良好。
这是固定的
@hueitan我在已经拥有
"moduleResolution": "node"
时遇到了同样的问题。 通过将"tslib": "^1.10.0"
到我的 devDependencies 来修复它。
固定的! 我的是常规依赖项。
通过向我的依赖项添加 "tslib": "^1.10.0" 来修复它。
npm i tslib -D
也为我工作
就像@ezolenko说的:虽然npm i tslib -D
有效,但这应该_not_ 用作解决方案,因为:
tslib
已经是rollup-plugin-typescript2
的依赖项,它是如何在您的系统中丢失的?你使用
npm install
还是别的什么?
在我的情况下,更好的解决方案是删除 package-lock 和 node_modules 并重新安装。
rm -rf ./node_modules
rm -rf ./package-lock.json
npm i
@hueitan我在已经拥有
"moduleResolution": "node"
时遇到了同样的问题。 通过将"tslib": "^1.10.0"
到我的 devDependencies 来修复它。
谢谢,很有帮助
没有一个提议的解决方案对我有用。 升级rollup-plugin-typescript2
就成功了。
npm i [email protected]
事实证明,即使我在^1.10.0
中有[email protected]
devDependencies
。 我意识到rollup-plugin-typescript2
覆盖了 tslib 版本。 我正在使用v0.20.1
; 升级为v0.27.1
。
奇怪的行为,但重新启动 VS 代码对我有用。 我之前没有遇到过这个问题,只是在进行软件包安装后才出现。
通过向我的依赖项添加 "tslib": "^1.10.0" 来修复它。
谢谢。 刚刚添加到peerDependencies
对我来说效果很好,不需要安装
我有这个错误:
语义错误 TS2343:此语法需要导入
名为 '__spreadArray' 的 ted 助手在 'tslib' 中不存在。 考虑升级您的 'tslib' 版本。
通过向我的依赖项添加 "tslib": "^2.1.0" 来修复它。
您可以简单地升级我们的tslib 版本。 我从[email protected]到tslib@^2.2.0 ,这是当时最新的一个,它解决了我的“__spreadArray”问题。
最有用的评论
@hueitan我在已经拥有
"moduleResolution": "node"
时遇到了同样的问题。 通过将"tslib": "^1.10.0"
到我的 devDependencies 来修复它。