Tslint: لا يمكن بدء tslint ببرنامج نصي npm

تم إنشاؤها على ٣١ أكتوبر ٢٠١٦  ·  20تعليقات  ·  مصدر: palantir/tslint

تقرير الشوائب

  • __TSLint version__: 3.15.1
  • __TypeScript إصدار__: 2.0.6
  • __تشغيل TSLint عبر__: البرنامج النصي npm

إذا قمت بكتابة "tslint --project." إنها تعمل:

...
src/core/app.ts[1, 33]: ' should be "
src/core/app.ts[3, 26]: ' should be "
src/core/app.ts[4, 27]: ' should be "
src/core/app.ts[5, 29]: ' should be "
src/core/app.ts[7, 21]: ' should be "
src/core/app.ts[7, 30]: ' should be "
src/core/app.ts[27, 22]: ' should be "
src/core/app.ts[28, 23]: ' should be "
src/core/app.ts[1, 62]: Missing semicolon
src/core/app.ts[3, 35]: Missing semicolon
src/core/app.ts[4, 37]: Missing semicolon
src/server.ts[1, 21]: ' should be "
src/server.ts[2, 17]: ' should be "
src/server.ts[1, 33]: Missing semicolon

إذا قمت بتشغيل نفس الأمر باستخدام برنامج نصي npm ، فسأحصل على:

me@me-ubu-N3355SL:~/project/server$ npm run lint

> [email protected] lint /project/server
> tslint --project '.'

Usage: /usr/bin/nodejs ./node_modules/.bin/tslint [options] [file ...]

Options:
  -c, --config          configuration file                                                      
  -h, --help            display detailed help                                                   
  -i, --init            generate a tslint.json config file in the current working directory     
  -o, --out             output file                                                             
  -r, --rules-dir       rules directory                                                         
  -s, --formatters-dir  formatters directory                                                    
  -e, --exclude         exclude globs from path expansion                                       
  -t, --format          output format (prose, json, verbose)                                      [default: "prose"]
  --test                test that tslint produces the correct output for the specified directory
  -v, --version         current version                                                         

Missing files

npm ERR! Linux 4.8.0-26-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "run" "lint"
npm ERR! node v6.9.1
npm ERR! npm  v3.10.8
npm ERR! code ELIFECYCLE
npm ERR! [email protected] lint: `tslint --project '.'`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] lint script 'tslint --project '.''.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the server package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     tslint --project '.'
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs server
npm ERR! Or if that isn't available, you can get their i...

وهذا ما أحصل عليه في npm-debug.log

13 info lifecycle [email protected]~lint: Failed to exec lint script
14 verbose stack Error: [email protected] lint: `tslint --project '.'`
14 verbose stack Exit status 1
14 verbose stack     at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/lib/utils/lifecycle.js:255:16)
14 verbose stack     at emitTwo (events.js:106:13)
14 verbose stack     at EventEmitter.emit (events.js:191:7)
14 verbose stack     at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/lib/utils/spawn.js:40:14)
14 verbose stack     at emitTwo (events.js:106:13)
14 verbose stack     at ChildProcess.emit (events.js:191:7)
14 verbose stack     at maybeClose (internal/child_process.js:877:16)
14 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
Question

التعليق الأكثر فائدة

لقد أكدت للتو أنه في حالة عدم وجود أخطاء في النسالة ، فإنه ينهي التنفيذ على ما يرام.

أعتقد أنه يجب عليك وضع تحذير كبير في الملف التمهيدي للريبو لهذا لأن معظم الناس على الأرجح سيشغلون tslint بنص npm ويخلطون مع الأخطاء ، مثلي تمامًا.

شكرا جزيلا لمساعدتكم. ؛)

ال 20 كومينتر

هل يمكنك محاولة تشغيل tslint --project '.' في سطر الأوامر؟
حاول تحرير ملف package.json الخاص بك لعدم استخدام علامات الاقتباس المفردة؟
هل تعمل بمسار مطلق؟

tslint --project '.' في سطر الأوامر.
"lint": "tslint --project .", this و "lint": "tslint --project '.'", لا تعملان باستخدام npm run lint

لقد استخدمت pwd لتحديد المسار الكامل لمشروعي وحاولت أيضًا:
npm run lint مع برنامج نصي مثل "lint": "tslint --project fullpath/", ولم يعمل أيضًا.

لقد لاحظت للتو أن نص المساعدة لا يتضمن --project . أنت تقوم بتشغيل إصدار قديم من tslint عند التشغيل باستخدام npm ، والذي لا يدعم هذا الخيار. أظن أن لديك إصدارًا واحدًا مثبتًا عالميًا وآخر آخر في node_modules

@ nchen63 أكدت أن الأمر لم يكن كذلك.

وجدت شيئًا جديدًا وكان غريبًا جدًا

root@.../.../...# npm install typescript -g
/usr/bin/tsc -> /usr/lib/node_modules/typescript/bin/tsc
/usr/bin/tsserver -> /usr/lib/node_modules/typescript/bin/tsserver
/usr/lib
└── [email protected] 

root@.../.../...# npm install -g tslint
/usr/bin/tslint -> /usr/lib/node_modules/tslint/bin/tslint
/usr/lib
├── [email protected] 
└── UNMET PEER DEPENDENCY typescript@>=1.7.3

@ bertolo1988 الذي يشبه https://github.com/palantir/tslint/issues/1003

@ bertolo1988 حاول تغيير البرنامج النصي npm -v وشاهد الإصدار الذي يشير إليه

@ nchen63

npm run lint
> npm -v

يعطي: 3.10.8 ، مثل npm -v

لاحظ أن الأشخاص الذين لديهم # 1003 لا يزال بإمكانهم استخدام tslint ... لا يمكنني ذلك.

سبب سؤالي هو أنك أدرجت 3.15.1 في تقرير الخطأ الخاص بك. تم تقديم العلم --project في 3.14.0

آه ، آسف ، هل يمكنك تشغيل tslint -v ، وليس npm -v في البرنامج النصي الخاص بك

3.15.1

حسنًا ، لا أعرف ماذا أقول. نص المساعدة الخاص بك لا يعطي الخيار --project ، لذلك هناك خطأ ما في الإصدار

لم أر مثل هذه المشكلة ، لكن يمكنني تخمين الخيارات التالية فقط التي يجب تجربتها في البداية:

  1. بشكل عام ، لديك 3.15.1 ولكن الإصدار المحلي أقل من 3.14.0 (نصوص npm قبل مجلد node_modules المحلي الخاص بك إلى PATH متغير ، لذلك يمكن أن تكون هناك اختلافات).

    • للتأكد من أن المحلي على ما يرام ، جرب ./node_modules/.bin/tslint -v و ./node_modules/.bin/tslint --project "." في وحدة التحكم.

  2. جرب علامات الاقتباس المزدوجة ( "lint": "tslint --project \".\"" ) بدلاً من علامات الاقتباس المفردة في نصوص npm.
  3. جرب "lint": "tslint --project \"tsconfig.json\"" في نصوص npm.
  4. حاول تثبيت أحدث إصدار من برنامج TSLint

    • قم بإزالة وحدات العقدة

    • npm i typescript<strong i="27">@2</strong> tslint@next

    • قم بتحديث البرنامج النصي npm إلى "lint": "tslint --project \".\""

      - npm run lint

أزلت التثبيت العالمي الخاص بي. الآن لا يمكنني تشغيل tslint على وحدة التحكم الخاصة بي. لقد قمت بتثبيته محليًا والإصدار بداخله هو "_id": "[email protected]", .

إذا حاولت تشغيل tslint -v على وحدة التحكم الخاصة بي ، فإنه يفشل. هذا جيد ، أتوقع هذا لأنني لم أقوم بتثبيته عالميًا.

إذا قمت بتعيين برنامج نصي npm مثل "lint":"npm -v" أحصل على:

me @ me-ubu-N55SL : ~ / path / sticky-notes $ npm تشغيل lint
[email protected] نسالة / مسار / ملاحظات لاصقة
tslint -v
3.15.1

أعتقد أن التثبيت العالمي فقط هو الذي يسمح لي بتشغيل tslint. تم تثبيتها كوحدة نمطية npm ، ولن يمكن الوصول إليها إلا باستخدام طلب / استيراد.

هام: تشغيل tslint عالميًا يعمل بشكل جيد ، عند تثبيته محليًا وتشغيله كبرنامج نصي npm أحصل على هذا الخطأ

@ bertolo1988 هل يعمل كما هو متوقع الآن؟
إذا كانت الإجابة بنعم - سعيد لحل مشكلتك.

تضمين التغريدة أنا "عزل" المشكلة بشكل أفضل قليلاً. لا تزال هناك مشكلة. تحقق من تعليقي السابق.

@ bertolo1988 إذا فهمت بشكل صحيح - لقد تمكنت من تثبيت 3.15.1 على المشروع (والتي كانت الحالة الجذرية لمشكلة --project flag).
لقد راجعت الارتباط مع إخراج السجل من تعليقك السابق وكل شيء يعمل كما هو متوقع.

باختصار - هذا مجرد رد فعل تفصيلي NPM على كود الخروج عندما تكون هناك أخطاء في الوبر.
لمزيد من التفاصيل والخيارات تحقق من هذا الموضوع https://github.com/palantir/tslint/issues/1704

ملاحظة: للتأكد من أنك تقوم بتشغيل نفس إصدار الحزمة مثل أدوات البناء و CI - أنا شخصياً أفضل استخدام البرامج النصية npm أو استخدام حزم من عمليات التثبيت المحلية مثل ./node_modules/.bin/tslint --project "." في حالتك

لقد أكدت للتو أنه في حالة عدم وجود أخطاء في النسالة ، فإنه ينهي التنفيذ على ما يرام.

أعتقد أنه يجب عليك وضع تحذير كبير في الملف التمهيدي للريبو لهذا لأن معظم الناس على الأرجح سيشغلون tslint بنص npm ويخلطون مع الأخطاء ، مثلي تمامًا.

شكرا جزيلا لمساعدتكم. ؛)

أمضيت للتو نصف ساعة في محاربة هذه القضية. يجب عليك بالفعل إضافة التحذير في مكان ما حول حالة الاستخدام هذه ، لأنه من المعتاد الآن استدعاء مثل هذه البرامج النصية باستخدام npm run ... .

واجهت هذه المشكلة واضطررت إلى البحث في هذا الأمر ونشرها للأجيال القادمة. أنا شخصياً لم يعجبني فشل البرنامج النصي npm عند فشل الفحص ، لذلك قمت بإجراء هذا التعديل:

"lint:be": "./node_modules/.bin/tslint --project 'server' -t stylish || echo",

كما هو مكتوب ، لن يفشل هذا أبدًا. استخدم بحذر. أنا شخصياً لم أستطع تحمل رسائل خطأ NPM الضخمة.

بدلاً من ذلك ، يؤدي استخدام yarn بدلاً من npm أيضًا إلى "إصلاح" هذه المشكلة.

"lint": "yarn run lint:be",
"lint:be": "./node_modules/.bin/tslint --project 'server' -t stylish",

🤖 بيب بوب! 👉 تم إهمال TSLint 👈 ويجب عليك التبديل إلى print-eslint ! 🤖

🔒 تم إقفال هذه المشكلة لمنع المزيد من المناقشات غير الضرورية. شكرا لك! 👋

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات