Modulação de Paths
Instalação
Como o Create React App capsula suas configurações, é necessária a instalação de dois pacotes como dependência de desenvolvimento:
$ yarn add customize-cra react-app-rewired -D
Instalação do plugin para definir os roots dos repositórios:
$ yarn add babel-plugin-root-import
Configurações
Arquivo config-overrides.js
na raíz do projeto
Esse arquivo é escrito em Node.js, por este motivo possui a sintaxe do CommonJS.
const { addBabelPlugin, override } = require('customize-cra');module.exports = override(addBabelPlugin(['babel-plugin-root-import',{rootPathSuffix: 'src',},]));
Arquivo jsconfig.json
na raíz do projeto
{"compilerOptions": {"baseUrl": "src","paths": {"~/*": ["*"]}}}
Refatoração
Arquivo package.json
Alterações nos scripts start
, build
e test
para os seguintes scripts:
{"scripts": {"start": "react-app-rewired start","build": "react-app-rewired build","test": "react-app-rewired test","eject": "react-scripts eject"},}
ESLint
Para o ESLint interpretar o plugin juntamente ao Babel, deve-se instalar o plugin:
$ yarn add eslint-import-resolver-babel-plugin-root-import -D
Arquivo .eslintrc.js
Adicionar após as rules
:
settings: {"import/resolver": {"babel-plugin-root-import": {rootPathSuffix: "src"},},},