vite + typescript + electron 使用import报错SyntaxError: Cannot use import statement outside a module解决
时间: 2023-10-12 22:10:31 浏览: 232
这个错误是因为默认情况下,Node.js 不支持 ES6 的模块化语法。但是,你可以通过使用 Babel 或者 TypeScript 等工具来转换你的代码,使其支持 ES6 模块化。
对于 Vite + TypeScript + Electron,你需要在项目根目录下创建一个 `tsconfig.json` 文件,并添加以下配置:
```
{
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "Node",
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"sourceMap": true
},
"include": [
"src/**/*.ts"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
}
```
然后,在你的代码中使用 `require` 或者 `import` 语句时,需要确保文件的后缀名是 `.js` 或者 `.ts`。例如:
```typescript
import { app, BrowserWindow } from 'electron';
function createWindow() {
const win = new BrowserWindow({
width: 800,
height: 600,
});
win.loadFile('index.html');
}
app.whenReady().then(() => {
createWindow();
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow();
}
});
});
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit();
}
});
```
最后,在 `package.json` 文件中添加以下配置:
```json
{
"type": "module"
}
```
这个配置告诉 Node.js 使用 ES6 模块化语法。完成以上步骤后,你就可以在 Vite + TypeScript + Electron 项目中使用 ES6 模块化语法了。
阅读全文