用过vue cli的话,对路径中的@应该不陌生,他表示根目录,但是在node的环境里面,我们编写模块并引入时,并没有这种方便的写法。

在node环境中,我们可以通过process.cwd()来表示根目录,但是这样的话,每次使用绝对路径引入,路径总是需要写一大堆拼接。

const db = require(`${process.cwd()}/config/config`).database;

这样略显麻烦,于是我们可以在全局写一个引入插件的方法:

global.myRequire = function (path) {
  return require(`${process.cwd()}/${path}`);
}

这句话要写在第一个运行的js文件顶部,他必须保证是第一个运行的。

使用的时候:

const db = myRequire ("config/config").database;

这样也能达到我们的目的,但是灵活度并不高。

于是,我们可以使用已经有人写好的轮子:require-directory

yarn add require-directory 

安装完毕后我们在_package.json_文件添加一段我们自定义的配置

{
"_moduleAliases": {
    "@": ".",
    "@models": "./models",
    "@core": "./core",
    "@config": "./config",
    "@utils": "./utils"
  }
}

需要多少个就自己加多少个。

然后保存,在第一个运行的js文件开头,我们需要引入这个插件。

require("module-alias/register"); //增加路径别名

const db = myRequire ("@/config/config").database;

然后就可以在路径中使用路径别名,效果很棒。

分类: Node 标签: node绝对路径路径别名

评论

暂无评论数据

暂无评论数据

目录