如何使用 nodejs 导入别名
How to have aliases with nodejs import
我有一个项目使用node.js v16,越来越多的npm库不再兼容require,需要用import。
直到现在我一直在使用 package.json 将我的根目录作为别名
// package.json
"dependencies": {
"~src": "file:.",
}
在我的源代码中
const someCode = require('~src/absolute/path/someCode');
这不适用于导入,并且根据我所做的测试,我还没有找到任何解决方案来使其与导入一起使用。
你遇到过这样的问题吗?并找到了解决方案?
我认为在当前版本的 Node 中为文件夹设置别名的首选方法是使用 subpath imports。
例如,您可以将根文件夹别名为 #src
(导入映射必须始终以 #
开头)。为此,请在 package.json 中添加以下导入部分:
"imports": {
"#src/*": "./*.js"
}
现在,假设您的包中有一个文件 some/path/someCode.js
,您可以像这样导入它:
import someCode from '#src/some/path/someCode';
您还可以使用相同的语法映射子文件夹:
"imports": {
"#src/*": "./*.js",
"#somepath/*": "./some/path/*.js"
}
并且在导入文件中:
import someCode from '#somepath/someCode';
我有一个项目使用node.js v16,越来越多的npm库不再兼容require,需要用import。
直到现在我一直在使用 package.json 将我的根目录作为别名
// package.json
"dependencies": {
"~src": "file:.",
}
在我的源代码中
const someCode = require('~src/absolute/path/someCode');
这不适用于导入,并且根据我所做的测试,我还没有找到任何解决方案来使其与导入一起使用。
你遇到过这样的问题吗?并找到了解决方案?
我认为在当前版本的 Node 中为文件夹设置别名的首选方法是使用 subpath imports。
例如,您可以将根文件夹别名为 #src
(导入映射必须始终以 #
开头)。为此,请在 package.json 中添加以下导入部分:
"imports": {
"#src/*": "./*.js"
}
现在,假设您的包中有一个文件 some/path/someCode.js
,您可以像这样导入它:
import someCode from '#src/some/path/someCode';
您还可以使用相同的语法映射子文件夹:
"imports": {
"#src/*": "./*.js",
"#somepath/*": "./some/path/*.js"
}
并且在导入文件中:
import someCode from '#somepath/someCode';