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

时间:2019-10-10 05:12:38

标签: npm yarnpkg npm-scripts prettier

我在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脚本运行命令有什么区别?

1 个答案:

答案 0 :(得分:1)

我有同样的问题,或者至少我以为我有同样的问题。我 尝试了一些操作,例如在命令中为文件/ dir / glob添加引号 ,更改了路径/ glob,它开始为我工作,因为现在我可以看到一些有用的输出。试试这些,也许对你们也一样。

这是prettier CLI documentation关于路径和文件/ dir / glob的内容。

别忘了各地的引号!引号确保 更漂亮的CLI扩展了全局而不是您的shell, 对于跨平台使用很重要。

因此请在您的脚本中尝试类似的操作( 注意: -c是--check 的缩写。 )

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

注意'src/**/*.ts'周围的引号 我不确定这是否对所有人都适用,但我希望它能像对我一样。

如果您想知道 什么是文件/ dir / glob

基本上,这是为文件定义正则表达式的部分,例如{{ 1}}在命令'src/**/*.ts'