3.15.1
2.0.6
Если я наберу 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)
вы можете попробовать запустить tslint --project '.'
в командной строке?
попробуйте отредактировать файл package.json, чтобы не использовать одинарные кавычки?
он работает с абсолютным путем?
tslint --project '.'
работает в командной строке.
"lint": "tslint --project .",
this и "lint": "tslint --project '.'",
не работают с npm run lint
Я использовал pwd, чтобы определить полный путь к моему проекту, а также попробовал:
npm run lint
со сценарием 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 Попробуйте изменить свой lint-скрипт на 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
, поэтому что-то не так с версией
Я не видел такой проблемы, но я могу предположить только следующие варианты, которые нужно попробовать сначала:
node_modules
папки до PATH
переменного, так что может быть различие)../node_modules/.bin/tslint -v
и ./node_modules/.bin/tslint --project "."
в консоли."lint": "tslint --project \".\""
) вместо одинарных кавычек в скриптах npm."lint": "tslint --project \"tsconfig.json\""
в скриптах npm.npm i typescript<strong i="27">@2</strong> tslint@next
"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] lint / path / sticky-notes
tslint -v
3.15.1
Я думаю, что только глобальная установка должна позволить мне запустить tslint. Установленный как модуль npm, он будет доступен только с помощью require / import.
ВАЖНО: запуск tslint в глобальном масштабе работает хорошо, при локальной установке и запуске в качестве сценария npm я получаю эту ошибку
@ bertolo1988 теперь работает как положено?
Если да - рад, что ваша проблема решена.
@IllusionMH Нет, погоди. Я немного лучше "изолировал" проблему. Проблема все еще существует. Проверьте мой предыдущий комментарий.
@ bertolo1988, если я правильно понимаю - вам удалось установить 3.15.1 в проект (что было основным случаем проблемы с флагом --project
).
Я проверил ссылку с выводом журнала из вашего предыдущего комментария, и все работает, как ожидалось.
Вкратце - это всего лишь подробная реакция NPM на код выхода при возникновении ошибок lint.
Для получения дополнительных сведений и параметров проверьте эту ветку https://github.com/palantir/tslint/issues/1704.
PS Чтобы убедиться, что вы используете ту же версию пакета, что и ваши инструменты сборки и CI - я лично предпочитаю использовать сценарии npm или использовать пакеты из локальных установок, например ./node_modules/.bin/tslint --project "."
в вашем случае
Я только что подтвердил, что если ошибок lint нет, выполнение завершается нормально.
Я думаю, что вам следует поместить большое предупреждение в readme репозитория для этого, потому что большинство людей, скорее всего, запустят 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 устарел 👈 и вам следует перейти на typescript-eslint ! 🤖
🔒 Эта проблема заблокирована, чтобы предотвратить дальнейшие ненужные обсуждения. Спасибо! 👋
Самый полезный комментарий
Я только что подтвердил, что если ошибок lint нет, выполнение завершается нормально.
Я думаю, что вам следует поместить большое предупреждение в readme репозитория для этого, потому что большинство людей, скорее всего, запустят tslint с помощью сценария npm и запутаются с ошибками, как и я.
Спасибо большое за вашу помощь. ;)