我有一个 VueJS 项目,使用我编写的服务模块。
自从我使用 vue cli 以来,我使用了方便的
@
符号来表示我的 src 文件夹,并使用该模式轻松加载我的所有模块:
/* Inside someService.js */
import API from '@/services/APIService.js'
问题是现在我尝试使用nodejs加载这些模块以在服务器上使用相同的功能并避免重复代码。
我使用
esm绕过了节点中的
import
支持,但使用 @
符号的所有模块均出现错误。
我可以浏览我的整个代码库并尝试摆脱
@
符号,但这将是我最后的手段。
如何使用
@
符号来表示 src
文件夹来加载这些模块?
我最终使用了link-module-alias。
它为您的别名创建一个符号链接,就像模块别名一样,它在您添加的
package.json
中以相同的方式定义:
{
// ... details, dependencies etc.
"_moduleAliases": {
"@": "./src"
},
}
"_moduleAliases"
中定义与上面答案完全相同的 package.json
,但您可以在运行时使用模块别名而不是符号链接,如下所示:
node -r module-alias/register -r esm index.js 8081
但这对我不起作用。
还有一个使用此包的选项 - https://www.npmjs.com/package/typescript-transform-paths
使用 TypeScript 的路径配置和/或自定义解析路径转换编译的源模块解析路径
值得一看