node.js - create-react-app eslint 问题,因为更高级别的文件夹包含另一个应用程序,其中包含 node_modules
问题描述
我有一个 git 存储库,其中有 2 个项目,一个环回应用程序(命名应用程序)和一个使用 create-react-app 创建的反应应用程序(命名客户端)。目录结构如下;
├─┬app
│ ├──node_modules
│ ├─┬client
├─node_modules
环回项目(应用程序)使用 eslint,在 devDependencies 中有 eslint,客户端在 package.json 中没有 eslint。
客户端应用程序是使用 create-react-app 创建的,因此当我运行 react-scripts 时,它会在上层目录中找到 eslint,并抱怨它的版本,如果我删除 app\node_modules 一切正常。
那么 react-scripts 如何在上层目录中找到 eslint,有没有办法告诉它不要检查任何其他 node_modules 文件夹,它应该只检查当前文件夹。
react-scripts 告诉我,我可以将 SKIP_PREFLIGHT_CHECK=true 放在我的 .env 文件中,这样做是否安全,它是在上层文件夹中运行 eslint 3.x,还是运行安装所需的 5.6.0 版本在 client\node_modules 文件夹中?
我将为这个项目设置一个部署工具链,所以我需要确保它一直都能正常工作。 编辑: 我的 client\package.json 中的配置条目
"eslintConfig": {
"extends": "react-app",
"root": true
},
EDIT2: 重现问题的步骤:我的节点版本是:8.11.3
npx loopback-cli app (accept default options when prompted)
cd app
npm i
npx create-react-app client
cd client
npm i
npm run start (you should see the errors after this)
EDIT3: 我最终弹出了反应脚本。
解决方案
.eslintrc
尝试在您的文件夹中创建一个文件client
,包括以下内容:
.eslintrc
{
"extends": "react-app"
}
或者,这应该根据文档工作:
{
"root": true
}
默认情况下,ESLint 会在所有父文件夹中查找配置文件,直到根目录。如果您希望所有项目都遵循某种约定,这可能很有用,但有时会导致意想不到的结果。要将 ESLint 限制为特定项目,请将 "root": true 放在 package.json 文件的 eslintConfig 字段或项目根级别的 .eslintrc.* 文件中。ESLint 一旦找到带有“root”的配置,就会停止在父文件夹中查找:true。
推荐阅读
- c# - 有条件的分组、求和和减法
- list - Ansible 添加键
- powershell - 搜索 *.dll 但仅使用 Powershell 输出特定版本的
- c# - CRM 2016 本地插件或自定义工作流程 - Docusign
- php - 读取 SimpleXMLElement
- javascript - 烧瓶 MySQL 连接错误 - AttributeError:“NoneType”对象没有属性“光标”
- python - 为什么 matplotlib 不显示使用 numpy 随机数组生成的值的图表?
- java - 如何迭代位于运行的 .jar 文件之外的文件夹
- typescript - 如何在数组内迭代循环以从打字稿中的另一个数组中获取值
- string - 解析相对 url wrt 绝对 URL