vscode 激活扩展失败:找不到具有非相对导入的模块
Posted
技术标签:
【中文标题】vscode 激活扩展失败:找不到具有非相对导入的模块【英文标题】:vscode activating extension failed: Cannot find module with non-relative import 【发布时间】:2017-08-29 01:32:37 【问题描述】:我正在开发 Visual Studio Code 扩展,我在 typescript 中使用非相对导入,例如:
import ModuleA from 'modules/ModuleA';
ModuleA
的实际文件夹是src/modules/ModuleA
,tsconfig.json
如下,我将src
指定为baseUrl
:
"compilerOptions":
"baseUrl": "./src",
"module": "commonjs",
"target": "es6",
"outDir": "out",
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true,
"lib": [
"es6"
],
"sourceMap": true,
"strictNullChecks": true,
"experimentalDecorators": true,
"moduleResolution": "node"
,
"exclude": [
"node_modules",
".vscode-test"
]
一切编译和构建都很好,但是,当我尝试启动扩展进行测试时,我收到错误:Activating extension failed: Cannot find module 'modules/ModuleA'
。我用来启动扩展的.vscode/launch.json
文件如下所示:
// A launch configuration that compiles the extension and then opens it inside a new window
"version": "0.1.0",
"configurations": [
"name": "Launch Extension",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "$execPath",
"args": ["--extensionDevelopmentPath=$workspaceRoot" ],
"stopOnEntry": false,
"sourceMaps": true,
"outFiles": ["$workspaceRoot/out"],
"preLaunchTask": "build",
"internalConsoleOptions" : "openOnSessionStart"
]
如何让非相对路径适用于开发 vscode 扩展?
【问题讨论】:
为什么要做“非相对”?您可能不应该为此使用baseUrl
。尝试使用相对路径直接引用它:./module/ModuleA
(假设您的代码在src
【参考方案1】:
我也有类似经历,我重装了节点,版本一样,问题解决了。
我使用的是 Mac,所以:
sudo rm -rf /usr/local/lib/node_modules/npm
brew reinstall node
参考:Error: Cannot find module '../lib/utils/unsupported.js' while using Ionic
【讨论】:
我在 Windows 上使用nvm install lts
进行了测试,但我的错误仍然存在。能否补充一些重装过程的细节?
@Pablion,以上是针对 linux 和 macos 的,也有一段时间了,您介意再解释一下您现在遇到的问题吗?
感谢您的回复。我遇到了同样的错误:Activating extension 'X' failed: Cannot find module 'non/relative/path' Require stack: ...
但是我的 tsconfig 和 launch.json 是一样的。据说tsconfig并没有改变捆绑过程here in the official repo的任何内容。以上是关于vscode 激活扩展失败:找不到具有非相对导入的模块的主要内容,如果未能解决你的问题,请参考以下文章
VSCode 加载插件失败找不到模块 'eslint-plugin-prettier'