Node.js配置別名alias的兩種方法

Node.js配置別名alias的兩種方法

什么是別名?

// import xxx from '../../../xxx';
import xxx from '@/xx/xx/xxx';

可以省去 ../../../xxx ,直接從配置的目錄開(kāi)始找文件

環(huán)境準(zhǔn)備

  1. Node.js如果下載過(guò)慢,可以從淘寶鏡像下載

第一種:webpack

使用 webpack 進(jìn)行打包并且在 webpack.config.js 配置里面配置 alias

配置 webpack.config.js

const path = require('path');
const resolve = path.resolve;

module.exports = {
  entry: './src/index.js',             // 入口文件
  output: {
    filename: 'bundle.js',             // 輸出文件名
    path: resolve(__dirname, 'dist')   // 輸出文件路徑
  },
  resolve: {
    alias: {
      '@': resolve(__dirname, 'src')   // 別名設(shè)置
    }
  }
}

之后在目錄 src 下面創(chuàng)建 index.jstest.js

index.js

import test from '@/test';  // 這里的 @/xxx 相當(dāng)于 src/xxx
console.log(test);

test.js

export default 'test';  // 隨便導(dǎo)出什么內(nèi)容

之后控制臺(tái)輸入 webpack 編譯之后運(yùn)行 node dist/bundle.js 即可輸出結(jié)果 test

第二種:module-alias

控制臺(tái)輸入 npm install module-aliasyarn add module-alias 安裝 module-alias

然后進(jìn)入 package.json 加入如下配置:

"_moduleAliases": {
  "@": "src"
}

(如果使用 TypeScript 的話,可以用 tsc 直接編譯。但是清注意這里的 src 應(yīng)改成打包后的目錄比如 dist build 等)

之后在主入口文件頭部引用 module-alias/register 如:

index.js

require('module-alias/register');
const test = require('@/test');
console.log(test);

test.js

module.exports = 'test';

之后控制臺(tái)運(yùn)行 node src/index.js 即可輸出結(jié)果 test

IDE 路徑提示設(shè)置

雖然打包運(yùn)行可以通過(guò)別名,但是 IDE 并不認(rèn)識(shí)

我們需要在項(xiàng)目根目錄新建文件 jsconfig.json (使用 TypeScript 則是 tsconfig.json
compilerOptions 加入:

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

文件最后如下:

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

總結(jié)

安裝環(huán)境之后兩種辦法:

  1. 修改 webpack 配置以支持別名打包
  2. 使用 module-alias 庫(kù)進(jìn)行編譯運(yùn)行
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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