react-native 絕對路徑 配置(./絕對路徑獲取文件報錯問題)

第一步需要安裝第三方插件支持絕對路徑: babel-plugin-module-resolver

命令行輸入:

// yarn
 yarn add babel-plugin-module-resolver
// npm
npm install --save-dev babel-plugin-module-resolver
第二部配置根目錄下babel.config.js 兩種方法任選其一

第一種babel.config.js:

plugin: [
    'module-resolver',
    {
      root: ['./src'], // 從哪個文件開始設置絕對路徑
      alias: {
        '@/utils': './src/utils', // 別名
      },
    },
  ],

第二種babel.config.js:大家只需要音頻plugins 配置 以及fs引入;

const { readdirSync } = require('fs');

module.exports = {
  plugins: [
    [
      'module-resolver',
      {
        // 那個文件開始設置絕對路徑
        root: ['./src'],
        // 別名配置
        alias: {
          ...readdirSync('./src', { withFileTypes: true }).reduce(
            (res, entry) => {
              let key = entry.name;
              if (!entry.isDirectory()) {
                // remove extension
                const parts = entry.name.split('.');
                parts.pop();

                key = parts.join('');
              }

              return {
                ...res,
                [key]: `./src/${entry.name}`,
              };
            },
            {},
          ),
        },
      },
    ],
  ],
};

第三步配置tsconfig.json

對應第一種:tsconfig.json

// 設置模塊解析基礎目錄:解析非絕對路徑模塊名時的基準目錄
"baseUrl": "./src",           
       // 模塊路徑映射:一系列映射規(guī)則,將導入路徑重定向到相對于 "baseUrl" 的查找位置  
    "paths": {
      "@/assets/*": ["assets/*"],
      "@/components/*": ["components/*"],
      "@/config/*": ["config/*"],
      "@/models/*": ["models/*"],
      "@/navigator/*": ["navigator/*"],
      "@/pages/*": ["pages/*"],
      "@/utils/*": ["utils/*"]
    },    

對應第二種:tsconfig.json

"baseUrl": "./",
"paths": {                                           
      "*": ["src/*"],
    },

關閉所有命令行,重啟項目npm run android 或 yarn android

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容