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ヘルパーが必要なのに、typescriptがtslib見つけられないためだと思います。

期待される結果は、必要なヘルパーがバンドルの一部になることです。

ありがとう。

最も参考になるコメント

@hueitanすでに"moduleResolution": "node"を持っているときに、同じ問題に直面しました。 devDependenciesに"tslib": "^1.10.0"を追加して修正しました。

全てのコメント19件

これは間違いなく透過的に機能するはずです(そして私自身のプロジェクトで私のために機能します)。 正確な設定を試してみます、ありがとう。

tsconfigに"moduleResolution": "node"が必要なようです。そうでない場合、typescriptはnode_modulesでtslibを見つけることができません。

それがノード以外のセットアップで問題を引き起こす可能性があるかどうかはわかりませんが、その影響についてはまだ何も聞いていません。

実際、 "moduleResolution": "node"を使用すると、期待どおりに機能します。 https://www.typescriptlang.org/docs/handbook/module-resolution.htmlを読んで、 "node"の方が適していると思うので、それを使用します。 READMEで言及/推奨することをお勧めしますか?

"classic"場合に#14を開いたようですので、これを閉じます。 ありがとう!

私と同じ問題に直面している人が他にいるかどうかはわかりません。

https://github.com/rollup/rollup-plugin-typescript/issues/109でこの問題が発生していたため、このリポジトリに切り替えましたが、このtslibエラーが発生します。

tsconfigはすでに"moduleResolution": "node"

tsconfig、rollup config、package.jsonを投稿すると、誰かが何か間違っていることに気付く可能性があります。

@hueitanすでに"moduleResolution": "node"を持っているときに、同じ問題に直面しました。 devDependenciesに"tslib": "^1.10.0"を追加して修正しました。

依存関係が私にも機能するので、 tslibを追加します。 きれいな解決策ではありませんが

tslibはすでにrollup-plugin-typescript2依存関係ですが、どのようにしてシステムに欠落することになりますか?

npm installなどを使用していますか?

私の場合、私は糸を使用しています。 ヤーンロックを削除して新しいものを再インストールすると、package.jsonでtslibを明示的に言及する必要はありません

次のリポジトリで再現できます。

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"を持っているときに、同じ問題に直面しました。 devDependenciesに"tslib": "^1.10.0"を追加して修正しました。

修理済み! 鉱山は通常の依存関係にありました。

依存関係に「tslib」:「^ 1.10.0」を追加して修正しました。

npm i tslib -D

私も働いた

@ezolenkoが言うように: npm i tslib -D機能しますが、これは解決策として使用すべきではありません。理由は次のとおりです。

tslibはすでにrollup-plugin-typescript2依存関係ですが、システムでどのように失われるのでしょうか。

npm installなどを使用していますか?

私の場合はうまくいき、より良い解決策はpackage-lockとnode_modulesを削除して再インストールすることです。

rm -rf ./node_modules
rm -rf ./package-lock.json
npm i

@hueitanすでに"moduleResolution": "node"を持っているときに、同じ問題に直面しました。 devDependenciesに"tslib": "^1.10.0"を追加して修正しました。

ありがとう、それはとても役に立ちます

提案された解決策はどれも私にはうまくいきませんでした。 rollup-plugin-typescript2アップグレードすることでうまくいきました。

npm i [email protected]

devDependencies ^1.10.0がある場合でも、ロールアップは[email protected]を使用していたことがわかりました。 rollup-plugin-typescript2がtslibバージョンを上書きしていることに気づきました。 私はv0.20.1 ; v0.27.1アップグレードしました。

奇妙な振る舞いですが、VSコードを再起動することは私にとってはうまくいきました。 以前は問題がありませんでした。パッケージのインストール後に問題が発生しました。

依存関係に「tslib」:「^ 1.10.0」を追加して修正しました。

ありがとう。 peerDependencies追加しただけで、私にとってはうまく機能します。インストールする必要はありません。

このエラーが発生しました:

セマンティックエラーTS2343:この構文には重要なものが必要です
'tslib'に存在しない '__spreadArray'という名前のテッドヘルパー。 'tslib'のバージョンをアップグレードすることを検討してください。

依存関係に「tslib」:「^ 2.1.0」を追加して修正しました。

tslibバージョンをアップグレードするだけです。 [email protected]から変更しました。これは、その時点で最新のものであり、 「__ spreadArray」の問題を修正しました。

このページは役に立ちましたか?
0 / 5 - 0 評価