vscode插件开发,如何使用绝对路径导入js模块?

vscode插件开发,如何使用绝对路径导入js模块?

我尝试以绝对路径导入js模块,智能提示没有问题,但运行调试就报错,如何解决这个问题?以下是详情。

jsconfig.js配置代码如下

{
    "compilerOptions": {
        "module": "Node16",
        "target": "ES2022",
        "checkJs": true, 
        "lib": [
            "ES2022"
        ],
        "baseUrl": ".",
        "paths": {
            "@/*": ["./src/*"],
            
        }
    },
    "exclude": [
        "node_modules"
    ]
}

导入js模块代码内容,所在文件路径:src/util/TestUtil.js

let test={
    test123(){

    },
    test567(){

    }
}
module.exports= {

    test:test,
  };

以绝对路径导入,调用const TestUtil = require('@/util/TestUtil.js')代码导入,输入TestUtil加小数点,有智能提示的截图

运行提示错误

Activating extension 'undefined_publisher.vscode-plugin-todo' failed: Cannot find module '@/util/TestUtil.js'
Require stack:
- e:\Workspace\vscodePlugins\vscode-plugin-todo\src\box\box.js
- e:\Workspace\vscodePlugins\vscode-plugin-todo\extension.js
- e:\Users\hasee\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\loader.js
- e:\Users\hasee\AppData\Local\Programs\Microsoft VS Code\resources\app\out\bootstrap-amd.js
- e:\Users\hasee\AppData\Local\Programs\Microsoft VS Code\resources\app\out\bootstrap-fork.js
- .

如何解决这个问题

阅读 1.4k
avatarAI BotBETA

你遇到的问题是在 VSCode 插件开发中,使用绝对路径导入 JavaScript 模块时出现的错误。从错误信息来看,它似乎无法找到你指定的模块。

在你的 jsconfig.js 文件中,你已经正确地设置了 baseUrlpaths,这应该能够帮助 VSCode 找到你的模块。然而,问题可能在于你如何导入模块。

在 Node.js 中,使用 require 函数导入模块时,路径应该是相对路径或者绝对路径。在你的情况下,你可以尝试以下方式来导入模块:

const TestUtil = require('@/util/TestUtil.js');

请注意,Node.js 并不支持 ES6 的 import 语法,因此你需要使用 require 函数来导入模块。

此外,如果你仍然遇到问题,请确保你的 node_modules 文件夹没有被排除在 jsconfig.jsexclude 列表中。虽然你已经在配置中排除了 node_modules,但如果你的插件依赖于其他包,你可能需要重新考虑这一点。

希望这些信息能够帮助你解决问题。如果你还有其他问题或需要更多的帮助,请随时告诉我。

1 个回答

jsconfig.js里面的paths只是让vscode能够识别你的路径别名,然后给你进行提示而已。
这也就是为什么你会看到webpack中会下面这个配置的原因:

alias: {
  '@': path.resolve(__dirname, 'src'),
},

所以,你需要给你的构建流程中配置上路径别名,这样require在遇到@时才知道如何解析。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏