Electron + Angular2 - 导入模块

时间:2016-12-21 14:17:17

标签: node.js angular typescript electron node-modules

我用电子和Angular2(Angular-CLI)创建了一个应用程序。 不幸的是,我不能像电子一样导入节点模块。

import {remote} from "electron";

每当我尝试导入节点模块并使用它们时,我都会遇到以下错误:

Uncaught TypeError: fs.readFileSync is not a function

我已经发现,如果我将以下几行添加到我的HTML中,我可以解决问题

<script>
   window.nodeRequire = require;
   delete window.require;
   delete window.exports;
   delete window.module;
</script>

并用于导入

const remote = nodeRequire("electron").remote;

但是通过这个解决方案,我无法使用打字。

我知道这是因为angular2需要模块。 Angular2有它自己的require方法。因此,它适用于nodeRequire。

对于包装我使用带有AngularCLI的webpack。 我的tsconfig.json看起来像下面的

{
  "compilerOptions": {
     "baseUrl": "",
     "declaration": false,
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
     "lib": [
       "es6",
       "dom"
     ],
     "mapRoot": "./",
     "module": "commonjs",
     "moduleResolution": "node",
     "outDir": "../dist/out-tsc",
     "sourceMap": true,
     "target": "es5",
     "typeRoots": [
       "../node_modules/@types"
     ]
  }
}

那么,有没有什么方法或解决方案可以在带有打字的电子+角度2项目中导入节点模块?

0 个答案:

没有答案