コードに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
ヘルパーが必要なのに、typescriptがtslib
見つけられないためだと思います。
期待される結果は、必要なヘルパーがバンドルの一部になることです。
ありがとう。
これは間違いなく透過的に機能するはずです(そして私自身のプロジェクトで私のために機能します)。 正確な設定を試してみます、ありがとう。
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」の問題を修正しました。
最も参考になるコメント
@hueitanすでに
"moduleResolution": "node"
を持っているときに、同じ問題に直面しました。 devDependenciesに"tslib": "^1.10.0"
を追加して修正しました。