纱线脚本与直接运行命令产生不同的输出。

问题描述 投票:2回答:1

我有一个脚本定义在 package.json:

"scripts": {
  "prettierCheck": "./node_modules/.bin/prettier --check ./app/javascript/**/*.js"
}

如果我运行这个脚本,使用 yarn run prettierCheck在我的文件中,Prettier没有发现任何格式化问题。然而,如果我直接运行Prettier命令,它却发现了违规的文件。

输出的 yarn run prettierCheck:

~/Projects/tome $ yarn run prettierCheck
yarn run v1.19.0
$ ./node_modules/.bin/prettier --check ./app/javascript/**/*.js
Checking formatting...
All matched files use Prettier code style!
Done in 0.20s

产出: ./node_modules/.bin/prettier --check ./app/javascript/**/*.js:

~/Projects/tome $ ./node_modules/.bin/prettier --check ./app/javascript/**/*.js
Checking formatting...
{... several files listed here ...}
Code style issues found in the above file(s). Forgot to run Prettier?

为什么会发生这种情况?直接运行命令和通过Yarn脚本运行命令有什么区别?

npm yarnpkg npm-scripts prettier
1个回答
1
投票

我有同样的问题,至少我认为我有同样的问题。I 尝试了一些事情,比如在我的命令中给filedirglob加引号,改变我的pathsglobs & 它开始为我工作,因为现在我可以看到一些有用的输出。试试这些& 也许对你们也有用。

这就是 更漂亮的CLI文档 关于路径& filedirglobs的说法。

不要忘记globs周围的引号! 这些引号可以确保Prettier CLI扩展globs,而不是你的shell,这对于跨平台的使用非常重要。

所以可以在你的 脚本 (注:-c是--检查的简称)。 -c是--检查的简称)

scripts": {
"pretty-check": "prettier -c 'src/**/*.ts'",
}

注意周围的引号 'src/**/*.ts'我不知道这是否对每个人都有效,但我希望它对我来说是这样的。

如果你想知道 什么是 filedirglob 基本上就是你为文件定义regex的部分,如 'src/**/*.ts' 在命令中 prettier -c 'src/**/*.ts'

© www.soinside.com 2019 - 2024. All rights reserved.