【问题标题】:How to convert Electron files from 'require' to 'import' for use with TypeScript? Angular2+如何将电子文件从“require”转换为“import”以与 TypeScript 一起使用?角2+
【发布时间】:2018-08-24 10:27:14
【问题描述】:

我已经按照官方的 Electron 教程以及其他一些在线教程,并在我的目录中创建了相关的文件。但是,教程中显示的文件是 JavaScript 而不是 TypeScript,因为我在 Angular 中使用它。

有什么方法可以将我创建的文件从使用require 转换为实际上importing 它们?

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;

【问题讨论】:

标签: javascript angular typescript electron


【解决方案1】:
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';

已确认它至少在 Angular 6.1 中的行为类似于 TypeScript 2.9。使用以前的 TS 版本可能会出现一些小问题,因为它们最近改进了互操作性。

在使用 Electron 加载之前,您需要设置另一个构建管道来将 TS 编译为 JS。

【讨论】:

    【解决方案2】:

    我认为更多的是 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`));

    (这只是一个例子,你应该做其他的,我只是给你走的路)

    【讨论】:

      猜你喜欢
      • 2018-08-13
      • 2019-09-27
      • 2020-10-21
      • 2017-08-24
      • 1970-01-01
      • 2017-07-04
      • 2022-11-17
      • 2016-11-05
      • 1970-01-01
      相关资源
      最近更新 更多