在使用react-native
的時候,常常要自定義不少組件,可是隻能使用../../../
的方式,若是目錄多了一長串,書寫很煩,看着也很差看。node
方法一:react
例如你想引入utils裏面的文件,不想../../../....,這樣引入,而是想@utils/.....這樣引入,那麼你就能夠在utils文件中放一個package.json,裏面以下:es6
{ "name": "@utils" }
而後就能夠引用了json
import { connect } from '@utils/utils/dva';react-native
方法二:數組
babel-plugin-module-resolver 是一個Babel模塊解析插件, 在.babelrc中能夠配置模塊的導入搜索路徑. 爲模塊添加一個新的解析器。這個插件容許你添加新的「根」目錄,這些目錄包含你的模塊。它還容許您設置一個自定義別名目錄,具體的文件,甚至其餘NPM模塊。babel
yarn add babel-plugin-module-resolver
而後配置項目根目錄的.bablerc文件:app
{ "plugins": [ ["module-resolver", { "root": ["./"], "extensions": [".js"], "cwd":"babelrc", "alias": { "@":"./app/" } } ] ] }
而後就能夠根據 設置的別名 @ 方式引入本身要用的資源了組件了,例如:函數
import Index from '@/components/index/index.js'; import { WIDTH } from '@/config/base';
root:一個字符串或根目錄的數組。指定路徑或全局路徑(例如./src/**/components) alias:別名的配置。也能夠別名node_modules依賴關係,而不單單是本地文件。 extensions:解析器中使用的擴展數組。覆蓋默認擴展名(['.js', '.jsx', '.es', '.es6', '.mjs'])。 cwd:默認狀況下,工做目錄是用於解析器的工做目錄,可是您能夠覆蓋您的項目。 自定義值babelrc將使插件根據要解析的文件查找最接近的babelrc配置。 自定義值packagejson將使插件查找最接近package.json的文件解析。 transformFunctions:將會變換其第一個參數的函數和方法的數組。默認狀況下,這些方法是:require,require.resolve,System.import,jest.genMockFromModule,jest.mock,jest.unmock,jest.doMock,jest.dontMock。 resolvePath(sourcePath, currentFile, opts):爲文件中的每一個路徑調用的函數。默認狀況下,模塊解析器使用一個內部函數,以下所示:import { resolvePath } from 'babel-plugin-module-resolver'。該opts參數是經過babel配置經過選擇對象。