我正在嘗試為開箱即用的配置 Nx 作業區找到默認 eslint 規則的位置。
我看到我的專案根目錄下的 eslintrc 檔案中使用了一些插件:
{
"root": true,
"ignorePatterns": ["**/*"],
"plugins": ["@nrwl/nx"],
"overrides": [
{
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
"rules": {
"@nrwl/nx/enforce-module-boundaries": [
"error",
{
"enforceBuildableLibDependency": true,
"allow": [],
"depConstraints": [
{
"sourceTag": "*",
"onlyDependOnLibsWithTags": ["*"]
}
]
}
]
}
},
{
"files": ["*.ts", "*.tsx"],
"extends": ["plugin:@nrwl/nx/typescript"],
"rules": {}
},
{
"files": ["*.js", "*.jsx"],
"extends": ["plugin:@nrwl/nx/javascript"],
"rules": {}
}
]
}
有人能告訴我在哪里可以看到啟用的完整規則串列嗎?
uj5u.com熱心網友回復:
規則來自 npm 包@nrwl/eslint-plugin-nx。這是包含在plugins沒有“eslint-plugin-”的串列中的包的名稱,在決議插件位置時由 ESLint 自動添加。
按照指向 monorepo https://github.com/nrwl/nx的鏈接,并深入“packages”檔案夾,我們發現了eslint-plugin-nx的來源。現在,查看package.json我們看到main模塊指向"./src/index.js",它是由 Typescript 從 自動生成的"./src/index.ts"。這個 .ts 檔案從子檔案夾“config”和“rules”中的模塊匯入定義,并將它們映射到匯出。所以 .eslinrc 檔案中包含的位置的來源是這樣的:
@nrwl/nx/enforce-module-boundaries: https://github.com/nrwl/nx/blob/master/packages/eslint-plugin-nx/src/rules/enforce-module-boundaries.ts@nrwl/nx/javascript: https://github.com/nrwl/nx/blob/master/packages/eslint-plugin-nx/src/configs/javascript.ts@nrwl/nx/typescript: https://github.com/nrwl/nx/blob/master/packages/eslint-plugin-nx/src/configs/typescript.ts
ESLint 的作業原理是合并extends部分(.js、.ts)中的規則定義,然后應用配置的rules定義(.js、.ts),最后應用@nrwl/nx/enforce-module-boundaries.eslintrc 檔案中定義的規則(還要注意overridesfor . tsx )。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/376692.html
