Javascript Vscode扩展API:找不到模块'@巴别塔/x27;

Javascript Vscode扩展API:找不到模块'@巴别塔/x27;,javascript,node.js,visual-studio-code,babeljs,vscode-extensions,Javascript,Node.js,Visual Studio Code,Babeljs,Vscode Extensions,我想在VScode扩展API上使用“@babel/preset react”编译JSX文件。在这样做时,我遇到了一个错误,如下所示。我尝试了几种安装方法,但仍然没有得到任何结果。它适用于基本节点应用程序,但不适用于VScode扩展API Error: Cannot find module '@babel/preset-react' at webpackEmptyContext (c:\Users\PC\Desktop\type-svg\jsx-svg\dist\extension.js:

我想在VScode扩展API上使用“@babel/preset react”编译JSX文件。在这样做时,我遇到了一个错误,如下所示。我尝试了几种安装方法,但仍然没有得到任何结果。它适用于基本节点应用程序,但不适用于VScode扩展API

Error: Cannot find module '@babel/preset-react'
    at webpackEmptyContext (c:\Users\PC\Desktop\type-svg\jsx-svg\dist\extension.js:56404:10)
    at resolveStandardizedName (c:\Users\PC\Desktop\type-svg\jsx-svg\dist\extension.js:57964:7)
    at resolvePreset (c:\Users\PC\Desktop\type-svg\jsx-svg\dist\extension.js:57912:10)
js:120:14)
c:\Users\PC\AppData\Local\Programs\Microsoft VS C
代码块:

试试看{
让输出=babel.transformSync(“代码”{
“预设”:[“@babel/preset react”]
});
console.log(输出)
}捕获(e){
控制台日志(e)
}
package.json文件:

{
“名称”:“jsx svg”,
“显示名称”:“,
“说明”:“jsx svg”,
“版本”:“0.0.1”,
“发动机”:{
“vscode”:“^1.55.0”
},
“类别”:[
“其他”
],
“激活事件”:[
“onCommand:jsx svg.helloWorld”
],
“main”:“/dist/extension.js”,
“贡献”:{
“命令”:[
{
“命令”:“jsx svg.helloWorld”,
“标题”:“你好,世界”
}
]
},
“脚本”:{
“vscode:预发布”:“纱线运行包”,
“编译”:“网页包”,
“观看”:“网页——观看”,
“包”:“网页包--模式生产--devtool隐藏源代码映射”,
“测试编译”:“tsc-p./”,
“测试手表”:“tsc-手表-p./”,
“预测试”:“纱线运行测试编译和纱线运行皮棉”,
“lint”:“eslint src--ext ts”,
“test”:“node./out/test/runTest.js”
},
“依赖性”:{
“@babel/core”:“^7.14.0”,
“@babel/plugin语法jsx”:“^7.12.13”,
“@babel/jsx”:“^7.13.12”,
“@babel/preset react”:“^7.13.13”,
“@babel/template”:“^7.12.13”,
“@babel/traverse”:“^7.14.0”,
“@types/glob”:“^7.1.3”,
“@types/mocha”:“^8.0.4”,
“@types/node”:“^12.11.7”,
“@types/vscode”:“^1.55.0”,
“@typescript eslint/eslint插件”:“^4.14.1”,
“@typescript eslint/parser”:“^4.14.1”,
“eslint”:“^7.19.0”,
“全球”:“^7.1.6”,
“摩卡咖啡”:“^8.2.1”,
“ts加载器”:“^8.0.14”,
“类型脚本”:“^4.1.3”,
“vscode测试”:“^1.5.0”,
“网页包”:“^5.19.0”,
Web包cli“^4.4.0”
},
“依赖项”:{
@types/babel\u core:“^7.1.14”
}
}

该错误中最大的提示是
webpacketmptycontext
。这不是节点告诉您它在文件系统上找不到
@babel/preset react”
,而是网页包告诉您它无法从其捆绑包中加载
@babel/preset react”

在Babel和任何基于对象的配置输入的情况下,这是意料之中的,因为Webpack无法知道这一点

let output = babel.transformSync("code", {
    "presets": ["@babel/preset-react"]
});
将导致Babel内部尝试加载
“@Babel/preset react”
,而Babel无法先发制人地告诉Webpack要绑定什么,因为它可以传递任何一组选项

解决方法是显式加载插件并将已加载的插件传递给Babel,如下所示:

let output = babel.transformSync("code", {
    "presets": [require("@babel/preset-react")]
});

我建议删除
node\u modules
文件夹并运行
npm安装
我尝试了很多次,但都不起作用。如果你做
“预设”,它能起作用吗?:[require(“@babel/preset react”)]
?这可以在@loganfsmyth工作,谢谢!