没有设置路径别名之前代码是这样的:
代码语言:javascript复制import { px2dp } from '../../utils/screenKits';
路径相当冗长,看着就头疼。增加了路径别名之后,变成这样
代码语言:javascript复制import { px2dp } from '~/utils/screenKits';
心里清爽多了! 具体操作见下文,实操性强!
安装插件
这里我选用 babel-plugin-root-import插件,主要是方便,不需要再为了 eslint
不识别 '@' 而增加配置。
这个babel-plugin-module-resolver插件,也可以,但是需要处理 eslint 的配置
代码语言:javascript复制yarn add babel-plugin-root-import --dev
修改babel.config.js
代码语言:javascript复制module.exports = {
presets: ['module:metro-react-native-babel-preset'],
plugins: [
['@babel/plugin-proposal-decorators', { legacy: true }], // mbox
// ['react-native-reanimated/plugin'],
[
'babel-plugin-root-import',
{
paths: [
{
rootPathSuffix: './src',
rootPathPrefix: '~/', // 使用 ~/ 代替 ./src (~指向的就是src目录)
},
{
rootPathSuffix: './src/utils',
rootPathPrefix: '!/',
},
],
},
],
],
};
修改import路径测试
清除rn缓存并重新启动项目
代码语言:javascript复制yarn clear-run
代码语言:javascript复制"scripts": {
"android": "react-native run-android",
"ios": "react-native run-ios",
"start": "react-native start",
"test": "jest",
"lint": "npx eslint --ext .js,.jsx,.ts,.tsx ./src",
"lint:fix": "npx eslint --fix .",
"check": "lint-staged",
"format": "prettier --write 'src/**/*.js'",
"prettier": "npx prettier --write .",
"prepare": "husky install",
"clear": "yarn cache clean",
"clear-run": "react-native start --reset-cache",
"del": "rimraf node_modules yarn.lock"
},
可以看到项目可以正常启动、正常运行