electron 如何指定一个源码目录进行打包?

zaq34kh6  于 9个月前  发布在  Electron
关注(0)|答案(3)|浏览(130)

我已经用electron-forge应用程序操纵了create-react-app,现在我需要以某种方式指定从CRA生成的构建文件夹用于打包。这个文件夹也应该送达。
用电子锻炉能做到吗?

new9mtju

new9mtju1#

我知道你在问如何告诉电子伪造哪个目录可以找到你的源文件打包的应用程序。
如果是,请参见:https://github.com/electron-userland/electron-packager/blob/master/docs/api.md
其中描述了
"config": { "forge": {
package.json文件中的
在它们里面有这个软件包配置对象:

"electronPackagerConfig": {
    "dir": "./src",

您可以在其中指定源文件夹。
另外,顺便说一句:在那里你可以指定在打包时要忽略的文件/文件正则表达式:

"ignore": [".idea", ".gitignore"]
xxslljrj

xxslljrj2#

electron-forge没有指定输入文件夹的选项(将使用项目的根文件夹):

1.指定ignore选项跳过文件夹/文件;
1.使用package.json中的main键指定正确的启动脚本。
例如vue项目的package.json

{
    "name": "project",
    "version": "1.0.0",
    "main": "index.js",
    ...
    "config": {
        "forge": {
            "packagerConfig": {
                "ignore": [
                    "^/[.]vs$",
                    "^/public$",
                    "^/src$",
                    "^/[.]browserslistrc$",
                    "^/[.]editorconfig$",
                    "^/tsconfig[.]json$",
                    "[.](cmd|user|DotSettings|njsproj|sln)$"
                ]
            },
            ...
        }
    },
    ...
}
m1m5dgzv

m1m5dgzv3#

实际上,你可以在脚本的arg only中指定源文件夹**(假设/src是要打包的文件所在的文件夹):electron-forge package ./src
该源文件夹必须包含package.json,其中包含电子伪造需要打包项目的数据。如果找不到package.json或者它不满足要求,electron-forge将进入具有适当package.json的文件夹,并假设它是实际的项目文件夹。正如我在电子伪造源中发现的那样,它至少需要这些数据:

{ 
  name: cfg.name,
  version: cfg.version,
  author: cfg.author,
  main: "main.js",
  devDependencies: {
    electron: cfg.devDependencies.electron,
    "@electron-forge/cli": cfg.devDependencies["@electron-forge/cli"]
  },
  config: {
    forge: "../forge.config.js"
  }
}

在我的项目中,我通过脚本创建了这个package.json,并在上面的示例中使用我的主package.json作为cfg来提供数据。你也可以提供forge config作为forge.js.js的路径,以避免重复。
另外请记住,electron-forge只会将文件/dirs打包在该文件夹中,因此不会包含node_modules或其他外部资产。因此,您需要使用webpack,esbundle等制作项目包。或者小心依赖项,并为打包的应用程序提供它。

相关问题