ReactNative添加paths映射, 优化引用路径.
https://www.tslang.cn/docs/handbook/module-resolution.html
- 安装babel的模块解析模块:
npm install --save-dev babel-plugin-module-resolver
- 编辑tsconfig.json中的
paths
模块, 增加新的模块别名:
{
//.......
"compilerOptions": {
"baseUrl": "./", /* Base directory to resolve non-absolute module names. */
"paths": {
"@app/apis/*": ["src/apis/*"],
"@app/assets/*": ["src/assets/*"],
"@app/components/*": ["src/components/*"],
"@app/constants/*": ["src/constants/*"],
"@app/pages/*": ["src/pages/*"],
"@app/routes/*": ["src/routes/*"],
"@app/secure-storage/*": ["src/storage/*"],
"@app/i18n/*": ["src/i18n/*"],
"@app/utils/*": ["src/utils/*"],
}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
},
// ......
}
- 编辑babel.config.js:
module.exports = {
presets: ['module:metro-react-native-babel-preset'],
plugins: [
[
'module-resolver',
{
root: ['./src'],
extensions: ['.tsx', 'ts'],
alias: {
'@app/apis': 'src/apis/',
'@app/assets': 'src/assets/',
'@app/components': 'src/components/',
'@app/constants': 'src/constants/',
'@app/pages': 'src/pages/',
'@app/routes': 'src/routes/',
'@app/secure-storage': 'src/storage/',
'@app/i18n': 'src/i18n/',
'@app/utils': 'src/utils/',
},
},
],
],
};
- 编辑metro.config.js, 添加
resetCache: true
module.exports = {
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: false,
resetCache: true,
},
}),
},
};
- 每次增加新的模块映射之后, 重启服务端:
yarn start --reset-cache
网友评论