繁体   English   中英

如何在使用Node.js的路径中使用@符号导入模块?

[英]How to import modules with @ symbol in path in using nodejs?

前提

我有一个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"
  },
}

可能的答案

我看到使用module-alias存在一个可能的解决方案 您可以在package.json定义与上面的答案中完全相同的"_moduleAliases" ,但可以在运行时使用模块别名代替符号链接,如下所示:

node -r module-alias/register -r esm index.js 8081

但这对我没有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM