Rollup-plugin-typescript2: 此语法需要导入的帮助程序,但找不到模块“tslib”。

创建于 2017-04-18  ·  19评论  ·  资料来源: ezolenko/rollup-plugin-typescript2

我看到代码有一些对tslibimportHelpers引用,所以我认为这应该透明地工作。 如果没有,我会很高兴知道缺少什么。

以下是重现方法:

安装的软件包:

$ 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

预期的结果是所需的助手成为包的一部分。

谢谢。

最有用的评论

@hueitan我在已经拥有"moduleResolution": "node"时遇到了同样的问题。 通过将"tslib": "^1.10.0"到我的 devDependencies 来修复它。

所有19条评论

这绝对应该透明地工作(并且在我自己的项目中对我有用)。 我会试试你的确切设置,谢谢。

看起来您需要在 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”问题。

此页面是否有帮助?
0 / 5 - 0 等级