当尝试在Visual Studio Code(vs code)中启动打字稿应用程序时,我收到错误“无法找到模块'电子'”。我正在尝试启动的项目是black-screen,我已经从github克隆了它。
以下语句抛出此错误:
import {ipcMain, nativeImage} from "electron";
(在文件https://github.com/shockone/black-screen/blob/master/src/main/Main.ts#l3的第3行)
我可以使用typescript-compiler(tsc)来转换应用程序,并且不会生成任何错误,并且可以在我期望的文件夹中看到已编译的javascript(src / bin /)。我也可以使用npm(“npm start”)成功启动应用程序。
以下是相关的项目配置文件:
的src / tsconfig.json
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"moduleResolution": "node",
"experimentalDecorators": true,
"noEmitOnError": true,
"pretty": true,
"jsx": "react",
"sourceMap": true,
"outDir": "bin"
}
}
.vscode / tasks.json文件 注意。在终端“tsc --project src --moduleResolution node”中执行等效命令会生成没有错误或警告的已转换的js代码。
{
"version": "0.1.0",
"command": "tsc",
"isShellCommand": true,
"showOutput": "silent",
"args": ["--project", "src", "--moduleResolution", "node"],
"problemMatcher": "$tsc"
}
.vscode / launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Black-Screen",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/src/main/Main.ts",
"stopOnEntry": false,
"cwd": "${workspaceRoot}/src",
"sourceMaps": true,
"outDir": "${workspaceRoot}/src/bin"
}
]
}
顺便说一下。项目结构是:
|.vscode/
|-- launch.json
|-- tasks.json
|decorators/
|...
|node_modules/
|-- bin/
|-- abbrev/
|-- acorn/
|README/
|-- <image files>
|src/
|-- bin/
|-- main/
|---- Main.ts
|---- Menu.ts
|...
|-- tsconfig.json
|...
|stylesheets/
|...
|test/
|...
|typings/
|...
|.babelrc
|.gitignore
|.npmrc
|...
|gulfile.bable.js
|package.json
|...
任何帮助将不胜感激:)
答案 0 :(得分:3)
我修正了错误,电子模块未被调试器识别。问题是由于电子应用程序在我的应用程序启动之前没有启动。
我发现了一个stackoverflow问题和链接的博客文章,它解决了这个问题 -
Debugging Electron-Atom script with Visual Studio Code /
http://www.mylifeforthecode.com/a-better-way-to-launch-electron-from-visual-studio-code/
将行"runtimeExecutable": "${workspaceRoot}/node_modules/electron-prebuilt/dist/electron"
添加到我的&#34; launch.json&#34;文件在调试器启动之前启动电子。
我的决赛&#34; launch.json&#34;档案是:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Black-Screen",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/src/main/Main.ts",
"stopOnEntry": false,
"cwd": "${workspaceRoot}/src",
"sourceMaps": true,
"outDir": "${workspaceRoot}/src/bin",
"runtimeExecutable": "${workspaceRoot}/node_modules/electron-prebuilt/dist/electron"
}
]
}
调试器在我设置的断点处停止。我注意到使用调试器时电子的性能要慢得多,但这是我将要解决的另一个问题:)
答案 1 :(得分:1)
项目包含https://github.com/shockone/black-screen/blob/master/typings/main/ambient/github-electron/github-electron.d.ts,并声明模块:https://github.com/shockone/black-screen/blob/master/typings/main/ambient/github-electron/github-electron.d.ts#L1884
怀疑错误的一行:
"args": ["--project", "src", "--moduleResolution", "node"],
更改为:
"args": ["-p", "./src"],
因为过去这对我有用。