Я вижу, что в коде есть ссылки на 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
.
Ожидаемый результат - необходимые помощники станут частью пакета.
Спасибо.
Это определенно должно работать прозрачно (и работает для меня в моих собственных проектах). Я попробую вашу точную настройку, спасибо.
Похоже, вам нужен "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, который на тот момент был последним, и он устранил мою
Самый полезный комментарий
@hueitan Я столкнулся с той же проблемой, когда у меня уже был
"moduleResolution": "node"
. Исправлено добавлением"tslib": "^1.10.0"
в мои devDependencies.