【问题标题】:`npm run` command doesn't obey the file seek pattern`npm run` 命令不遵循文件搜索模式
【发布时间】:2019-08-27 04:22:12
【问题描述】:

好的,我以前从未遇到过这个问题。这很奇怪。我有一个 package.json 脚本如下:

{
  "scripts": {
    "test": "node_modules/jest/bin/jest.js --coverage",
    "lint": "node_modules/eslint/bin/eslint.js ./src/**/*.{js,md} --fix",
    "format": "node_modules/prettier-standard/src/cli.js ./src/**/*.{js,md} --fix",
    "start": "sls offline"
  }
}

例如,如果我键入npm run lint,则查找文件的模式似乎不起作用(仅通过第一个子文件夹)。但如果我在终端执行命令,它就可以正常工作。

问题:为什么这样可以正常工作 ~ node_modules/eslint/bin/eslint.js ./src/**/*.{js,md} --fix 这不会 npm run lint?

【问题讨论】:

  • 您真的可以将这样的 .js 文件命名为脚本值中的第一个参数,而其中没有 node 吗?这是否需要与 .js 文件建立某种文件关联才能工作?我期待"node node_modules/eslint/bin/eslint.js ..."

标签: node.js npm package.json


【解决方案1】:

为什么要使用模块的完整路径?您只需要安装模块,npm 就会找出脚本所在的位置。

npm i -D eslint jest prettier

如果文件的模式仍然不起作用,请尝试用'...' 包围它,以前有关于此的已知问题

"scripts": {
    "test": "jest --coverage",
    "lint": "eslint './src/**/*.{js,md}' --fix",
    "format": "prettier './src/**/*.{js,md}' --fix",
    "start": "sls offline"
}

【讨论】:

  • 如果已全局安装依赖项,它可以正常工作.. 但是,看起来不正确。我相信这是一个模块的问题,因为 jest 工作正常!
【解决方案2】:

我解决了我的问题,只是将 seek 模式 包含在单引号中。

{
  "scripts": {
    "test": "node_modules/jest/bin/jest.js --coverage",
    "lint": "node_modules/eslint/bin/eslint.js './src/**/*.{js,md}' --fix",
    "format": "node_modules/prettier-standard/src/cli.js './src/**/*.{js,md}' --fix",
    "start": "sls offline"
  }
}

谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 2016-05-11
    • 2018-07-21
    • 2014-10-15
    • 1970-01-01
    • 2021-09-16
    • 1970-01-01
    相关资源
    最近更新 更多