Как преобразовать файлы Electron из 'require' в 'import' для использования с TypeScript? Angular2 + - PullRequest
0 голосов
/ 24 августа 2018

Я следовал официальным учебникам Electron вместе с несколькими другими онлайн и создал файлы, связанные с моими каталогами.Однако файлы, показанные в руководствах, JavaScript , а не TypeScript , поскольку я использую это в Angular.

Есть ли способ, которым файлы, которые я создалможно перевести из использования require в фактическое import их?

Электронное руководство по началу работы

Я видел в прошломделать что-то вроде 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 голосов
/ 24 августа 2018
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 могут быть некоторые незначительные проблемы, поскольку в последнее время улучшено взаимодействие.

В любом случае вам потребуется настроить другой конвейер сборки для компиляции TS в JS перед загрузкой его в Electron.

0 голосов
/ 24 августа 2018

Думаю, это еще одна проблема 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`));

(Это всего лишь пример, вы должны сделать другие, я просто даю вам путь)

...