我正在Linux中尝试一个简单的Hello World Electron应用程序。我想打包它并在Windows上安装它以测试它是否在那里运行良好。
当我执行&nbsp install命令时,它创建了一个~112 MB的node_modules文件夹。我还没有任何东西甚至可以使用这些模块,如果我删除这个文件夹,示例也会正常启动。 package.json 文件具有电子预制'作为devDependencies中唯一的项目,所以我假设node_modules文件夹是为此。
所以我怀疑是否应该将此文件夹包含在最终包中,如果我希望它在Windows上运行?
我检查了文档here,但它只有3个文件而没有依赖项,所以我不确定在你明确拥有的情况下该怎么办。
答案 0 :(得分:7)
简短回答:
如果您通过node_modules
安装其他库,然后从代码中引用它们,则最终分发版中需要npm
个文件夹。
答案很长:
我不确定,但你可能感到困惑,因为你安装了electron-prebuilt
,这也是一个npm包,但是这个是特别的,因为它是开发和包装所必需的,并且不能用作一个简单的应用程序库。我建议您为应用程序使用双包结构来分离开发和应用程序包。这是我的电子应用程序的文件夹结构示例(我们称之为MyApp
):
MyApp:解决方案根文件夹,对于一个简单的应用程序,它将映射到您的存储库根文件夹
gulp
,electron-prebuilt
,gulp插件等。从repo中排除 dist:分发文件夹,这是我的gulp任务在生产时将打包的应用程序分发放入的地方。 从repo中排除
src:所有应用来源。现在这是你的应用程序。该文件夹的所有内容都打包成一个发行版。
所以,当我需要安装一个帮助我进行开发的软件包(通常是一个gulp插件)时,我会导航到/ MyApp并在那里执行npm install -D [package]
。当我需要为我的应用程序安装库时,比如前端框架,我导航到/ MyApp / src并在那里执行npm install -S [package]
。
当我需要在开发中快速运行电子应用时,我将/MyApp/src
文件夹提供给gulp-run-electron
插件。或者,如果您为开发包安装了electron-prebuilt
,则可以导航到/MyApp
并运行/MyApp/node_modules/electron-prebuilt/dist/electron[.exe] ./src
。您还可以使用electron-prebuilt
全局安装npm i -g electron-prebuilt
,然后运行electron ./src
。
当我需要打包我的应用程序以进行发布或测试时,我使用gulp-electron
插件来生成分发版。还有其他方法可以做到这一点,比如使用electron-packager
或其中一个包装器来构建您选择的构建系统,或者手动完成整个事情。
答案 1 :(得分:2)
electron-packager
是一种轻量级的抽象概念,可以为每个平台构建Electron应用程序。
它将遍历您的应用程序并为您指定的每个操作系统创建可执行文件。它将负责捆绑您的应用程序。您不必担心在最终版本中指定node_modules
。
一般来说,建议不要将node_modules
检入版本控制。