Rollup-plugin-typescript2: Для этого синтаксиса требуется импортированный помощник, но модуль tslib не может быть найден.

Созданный на 18 апр. 2017  ·  19Комментарии  ·  Источник: ezolenko/rollup-plugin-typescript2

Я вижу, что в коде есть ссылки на 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 требует __extends помощника от tslib , но машинописный текст не может найти tslib .

Ожидаемый результат - необходимые помощники станут частью пакета.

Спасибо.

Самый полезный комментарий

@hueitan Я столкнулся с той же проблемой, когда у меня уже был "moduleResolution": "node" . Исправлено добавлением "tslib": "^1.10.0" в мои devDependencies.

Все 19 Комментарий

Это определенно должно работать прозрачно (и работает для меня в моих собственных проектах). Я попробую вашу точную настройку, спасибо.

Похоже, вам нужен "moduleResolution": "node" в tsconfig, иначе машинописный текст не сможет найти tslib в node_modules.

Не уверен, что это может создать проблемы при настройке без узла, но я еще ничего не слышал об этом.

Действительно, с "moduleResolution": "node" он работает, как ожидалось. Читая https://www.typescriptlang.org/docs/handbook/module-resolution.html , я думаю, что "node" мне больше подходит, поэтому я просто воспользуюсь им. Могу я предложить упомянуть / порекомендовать его в README?

Я вижу, что вы открыли №14 для случая "classic" , поэтому я закрою его. Спасибо!

Не уверен, что кто-то еще сталкивается с такой же проблемой, как моя.

У меня была эта проблема https://github.com/rollup/rollup-plugin-typescript/issues/109 , поэтому я переключаюсь на это репо, но затем получаю эту ошибку 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 и переустановив заново, мне не нужно явное упоминание tslib в package.json

Я могу воспроизвести это в следующем репо:

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 я 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" . Исправлено добавлением "tslib": "^1.10.0" в мои devDependencies.

Спасибо, это так полезно

Ни одно из предложенных решений у меня не помогло. Обновление rollup-plugin-typescript2 помогло.

npm i [email protected]

Оказывается, при свертке использовалось [email protected] даже когда у меня было ^1.10.0 в devDependencies . Я понял, что rollup-plugin-typescript2 заменяет версию tslib. Я использовал v0.20.1 ; повышен до v0.27.1 .

Странное поведение, но перезапуск кода VS сработал для меня. Раньше у меня не было этой проблемы, она возникла только после установки пакета.

Исправлено добавлением "tslib": "^ 1.10.0" в мои зависимости.

Спасибо. Просто добавлен в peerDependencies и он у меня работает, не нужно устанавливать

У меня была такая ошибка:

семантическая ошибка TS2343: этот синтаксис требует импорта
ted-помощник с именем '__spreadArray', которого нет в 'tslib'. Рассмотрите возможность обновления вашей версии tslib.

Исправлено добавлением "tslib": "^ 2.1.0" в мои зависимости.

Вы можете просто обновить нашу версию tslib . Я сделал свой от [email protected] до tslib@^2.2.0, который на тот момент был последним, и он устранил мою

Была ли эта страница полезной?
0 / 5 - 0 рейтинги