我可能是一个&n; npm numpty"但是当我输入时我无法弄清楚为什么:
tslint --force --format verbose \"src/**/*.ts\"
它工作正常,但是当我输入时:
npm run lint
我的package.json
包含:
"scripts": {
"clean": "rimraf lib",
"lint": "tslint --force --format verbose \"src/**/*.ts\"",
"build": "npm run clean && npm run lint && echo Using TypeScript && tsc --version && tsc --pretty",
"test": "npm run build && mocha --compilers ts:ts-node/register --recursive test/**/*-spec.ts",
"watch": "npm run build -- --watch",
"watch:test": "npm run test -- --watch"
},
我收到以下错误:
module.js:471 扔错了; ^
错误:无法找到模块' ./ test / parse' 在Function.Module._resolveFilename(module.js:469:15) 在Function.Module._load(module.js:417:25) 在Module.require(module.js:497:17) at require(internal / module.js:20:19) 在对象。 (/Volumes/PEGASUS/repos/mine/logger/serverless-event/node_modules/tslint/lib/test.js:10:13) 在Module._compile(module.js:570:32) 在Object.Module._extensions..js(module.js:579:10) 在Module.load(module.js:487:32) 在tryModuleLoad(module.js:446:12) 在Function.Module._load(module.js:438:3)
我还查看了npm-debug.log
文件,其中包括:
23 error Tell the author that this fails on your system:
23 error tslint --force --format verbose "src/**/*.ts"
当然,精确的命令不会失败,这是我所拥有的整个问题。
值得注意的是,我确实看到了类似的声音问题 - npm run cmd fails while cmd on command line works - 但是讨论的解决方案对我得到的错误没有任何影响。
另外值得注意的是,我目前没有任何linting错误,警告或任何我期望它返回错误状态的内容。
答案 0 :(得分:2)
混淆可能是因为npm脚本添加到您的PATH,包括./node_modules/.bin。这意味着当您在package.json中使用DbInterception.Add(new TemporalTableCommandTreeInterceptor());
时,您在tslint
中引用了本地安装的版本,并且当您直接使用node_modules
时,您正在使用全球安装的版本。似乎只有全局安装的版本正在运行。
您可以通过在命令行中明确指定路径来确认,即运行tslint
。这直接使用了node_modules版本,并且应该为您提供与NPM脚本相同的失败结果。
但这并不能解决你的根本问题。听起来你的本地安装的tslint无法找到它使用的文件,虽然我不知道为什么。除非有明显的原因,否则我认为最快的解决方案可能只是删除您的./node_modules/.bin/tslint --force --format verbose \"src/**/*.ts\"
文件夹和node_modules
,以便下载新的工作版本。
全新安装的tslint及其所有依赖项应该能够成功加载其所有依赖项,并且您不应该看到这些问题。如果它不能,那么你可能有一个用tslint提交的错误。