أرى أن الكود يحتوي على بعض الإشارات إلى 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"
إلى تبعيات التطوير الخاصة بي.
إضافة tslib
لأن التبعيات تعمل معي أيضًا. على الرغم من أنه ليس الحل الجميل
tslib
هو بالفعل تبعية rollup-plugin-typescript2
، كيف ينتهي به الأمر في عداد المفقودين على نظامك؟
هل تستخدم npm install
أو أي شيء آخر؟
في حالتي أنا أستخدم الغزل. حذف yarn.lock وإعادة تثبيت جديد ، لست بحاجة إلى ذكر صريح لـ tslib
في الحزمة. 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"
إلى تبعيات التطوير الخاصة بي.
مثبت! كان المنجم في التبعيات العادية.
تم إصلاحه بإضافة "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"
إلى تبعيات التطوير الخاصة بي.
شكرا لك ، إنه مفيد جدا
لم يعمل أي من الحلول المقترحة بالنسبة لي. ترقية 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] وهو الأحدث بمرور الوقت وتم إصلاح مشكلة "__spreadArray" الخاصة بي .
التعليق الأكثر فائدة
hueitan لقد واجهت نفس المشكلة بينما كان لدي بالفعل
"moduleResolution": "node"
. تم إصلاحها عن طريق إضافة"tslib": "^1.10.0"
إلى تبعيات التطوير الخاصة بي.