如何将Electron文件从“需要”转换为“导入”以用于TypeScript? Angular2 +

时间:2018-08-24 10:27:15

标签: javascript angular typescript electron

我已经跟随一些在线的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;

2 个答案:

答案 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`));

(这只是一个示例,您应该制作其他示例,我只是给您提供方法)