美文网首页
Node.js配置别名alias的两种方法

Node.js配置别名alias的两种方法

作者: LKZ烂裤子 | 来源:发表于2020-10-24 18:40 被阅读0次

    Node.js配置别名alias的两种方法

    什么是别名?

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

    可以省去 ../../../xxx ,直接从配置的目录开始找文件

    环境准备

    1. Node.js如果下载过慢,可以从淘宝镜像下载

    第一种:webpack

    使用 webpack 进行打包并且在 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')   // 别名设置
        }
      }
    }
    

    之后在目录 src 下面创建 index.jstest.js

    index.js

    import test from '@/test';  // 这里的 @/xxx 相当于 src/xxx
    console.log(test);
    

    test.js

    export default 'test';  // 随便导出什么内容
    

    之后控制台输入 webpack 编译之后运行 node dist/bundle.js 即可输出结果 test

    第二种:module-alias

    控制台输入 npm install module-aliasyarn add module-alias 安装 module-alias

    然后进入 package.json 加入如下配置:

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

    (如果使用 TypeScript 的话,可以用 tsc 直接编译。但是清注意这里的 src 应改成打包后的目录比如 dist build 等)

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

    index.js

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

    test.js

    module.exports = 'test';
    

    之后控制台运行 node src/index.js 即可输出结果 test

    IDE 路径提示设置

    虽然打包运行可以通过别名,但是 IDE 并不认识

    我们需要在项目根目录新建文件 jsconfig.json (使用 TypeScript 则是 tsconfig.json
    compilerOptions 加入:

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

    文件最后如下:

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

    总结

    安装环境之后两种办法:

    1. 修改 webpack 配置以支持别名打包
    2. 使用 module-alias 库进行编译运行

    相关文章

      网友评论

          本文标题:Node.js配置别名alias的两种方法

          本文链接:https://www.haomeiwen.com/subject/oulwmktx.html