Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在我的Electron应用程序的客户端代码中导入节点模块?_Electron_Es6 Modules - Fatal编程技术网

如何在我的Electron应用程序的客户端代码中导入节点模块?

如何在我的Electron应用程序的客户端代码中导入节点模块?,electron,es6-modules,Electron,Es6 Modules,我正在使用Electron 2(for)和服务器端的构建ES6模块的棋盘游戏。这是我第一次编写同构JavaScript,更不用说ES6模块了;我希望能够以单人模式在客户机上运行游戏逻辑,以网络游戏模式在服务器上运行游戏逻辑。到目前为止一切顺利,我很高兴向大家报告!不依赖任何重型运输机是令人满意的 不过,现在我有一个问题:我打算在客户端和服务器上使用类型,我只知道如何将它们导入服务器代码。到目前为止,同构代码中的所有导入语句都引用了应用程序中的其他JS模块,而不是来自npm的依赖项。当应用程序加载

我正在使用Electron 2(for)和服务器端的构建ES6模块的棋盘游戏。这是我第一次编写同构JavaScript,更不用说ES6模块了;我希望能够以单人模式在客户机上运行游戏逻辑,以网络游戏模式在服务器上运行游戏逻辑。到目前为止一切顺利,我很高兴向大家报告!不依赖任何重型运输机是令人满意的

不过,现在我有一个问题:我打算在客户端和服务器上使用类型,我只知道如何将它们导入服务器代码。到目前为止,同构代码中的所有导入语句都引用了应用程序中的其他JS模块,而不是来自npm的依赖项。当应用程序加载时,类似下面的模块会在客户端中导致“未捕获的TypeError:无法解析模块说明符'immutable'”运行时错误:

从“不可变”导入不可变;
([])的不可变列表;

导出{foo:{}TL;DR-只要您使用npm模块,就不能没有bundler-like webpack的帮助

大多数node.js包生态系统尚未准备好用于本机模块。npm中大约99%的已发布包目前使用node.js的CommonJS模块系统,而支持esm(ES模块语法)的模块很少

esm shim旨在帮助后者-如果在esm中编写并将在当前node.js版本中导入的模块不支持,则它有助于解决这些模块。相反的情况不起作用。Chromium可以直接导入以本机语法编写的代码,然后尝试解析您指定但未能解析为1的依赖模块。它不知道在哪里解析(因为它不遵循node.js的模块解析规则)2。当可以解决时,实际导入将失败,因为模块将是cjs导出而不是本机导出


回到TL;DR above-如果目的是实现在两个进程上运行的同构代码,请相应地使用bundler。

Rats!哦,好吧,我想我会找到一个轻便的捆绑机。