问题
当我们在使用Nodejs
开发项目的时候常常会遇到各种文件的import
,而有的文件路径过深,就会导致如下情况:
import '.../.../.../a.js'
这样其实是特别麻烦,且对后期项目维护非常不友好的,下面我们通过给路径定义别名(alias
)的方式来解决这个问题。
方法
两个方法,可以根据自身情况来使用。
1. 方法一(适用于CommonJS引入的项目)
如果你的项目的文件引入规则是CommonJS
(例如:require('.../.../.../a.js')
),如此你就可以使用一个叫module-alias
插件来解决问题,使用方法参考module-alias。
如果你使用的是ES6的模块引入的话,使用这个插件就会报错(报错示例链接),文档上说支持ES Module
的,但是没用。
2. 方法二(适用于ES Module引入的项目)
如果你的项目的文件引入规则是ES Module
(例如:import '.../.../.../a.js'
),这样你就可以在package.json
中直接定义路径别名了:
// package.json
"type": "module" // 使用ES Module必须配置这个
"imports": {
"#root/*": "./*", // 根目录
"#services/*": "./src/services/*" // 服务层文件夹
}
如上代码所示,可以根据自己需求调整。
import a from '#root/app/model/a.js' // 使用别名
具体可以参考文档node/packages_imports