我已经跟随一些在线的Electron官方教程,并创建了我目录中关联的文件。但是,教程中显示的文件是 JavaScript 而不是 TypeScript ,因为我正在Angular中使用它。
是否可以将创建的文件从使用require
转换为实际import
对其进行转换?
Electron getting started guide
我过去看到过类似import * as component from './...'
这样的功能,但是我不确定是否要从同一来源导入多个组件,例如:
const {app,BrowserWindow} = require('electron');
electronStart.ts (在本教程中称为main.js
,但是已经有一个由Angular-CLI生成的同名文件)
const {app, BrowserWindow} = require('electron');
const path = require('path');
setupEvents.ts
const electron = require('electron');
const ChildProcess = require('child_process');
module.exports = {
...
}
createInstaller.ts
const createWindowsInstaller = require('electron-winstaller').createWindowsInstaller;
答案 0 :(得分:2)
const {app, BrowserWindow} = require('electron');
等效于
import { app, BrowserWindow } from 'electron';
而
const electron = require('electron');
等同于
import * as electron from 'electron';
和
const createWindowsInstaller = require('electron-winstaller').createWindowsInstaller;
应该可以重写为
import { createWindowsInstaller } from 'electron-winstaller';
已确认至少在Type 2.9中,它在Angular 6.1中的行为类似。在以前的TS版本中,可能会出现一些小问题,因为它们最近改进了互操作性。
无论如何,在将Electron加载TS之前,您需要设置另一个构建管道来将TS编译为JS。
答案 1 :(得分:0)
我认为更多的IDE问题。
进行全局搜索并用正则表达式替换:
const regex = /const ([a-zA-Z0-9]*) = require\(('.*')\)/
const str = `const lodash = require('lodash');`
console.log(str.replace(regex, `import * as $1 from $2`));
(这只是一个示例,您应该制作其他示例,我只是给您提供方法)