require ('fs') не работает с угловым и электронным - PullRequest
0 голосов
/ 11 июня 2018

Я использую Angular 6.0, Electron 2.0, машинопись 2.9, nodejs 9.11, чтобы создать настольное приложение, использующее электронную среду.Я борюсь с доступом к нативному API NodeJS из машинописного кода.Я установил «commonjs» в файле «tsconfig.app.json».Когда я пишу: require ('fs') или require ('net') в любом из файлов ts, которые являются частью углового приложения, система не может найти эти модули.

Пока работает только одно решение.Это идет так.Сначала в 'native.js'

window.fs = require('fs')

Затем в polyfill.ts:

declare global {
  interface Window{
    fs : any;
  }
}

Затем получите доступ к fs в остальной кодовой базе как window.fs.

Хотя это нормально, но не масштабируется, как если бы мне приходилось использовать любую библиотеку, которая зависит от нативного API NodeJS, тогда эту библиотеку необходимо импортировать с помощью этого механизма.

Есть ли другое решение, позволяющее angular разрешить импорт системных библиотек nodejs через обычный синтаксис require(<module>)?

1 Ответ

0 голосов
/ 08 мая 2019
import * as Fs from 'fs';
const fs: typeof Fs = window['require']('fs');
...