电子生成器没有在正确的位置复制我的 dist/node_modules 目录
Electron builder not copying my dist/node_modules directory in the right place
我有一个节点应用程序,我已经用 Electron 启动了。现在,我想用 electron-builder 打包它,但我正在处理这种奇怪的行为。通常,当我构建我的应用程序时,会生成一个 dist 文件夹,其中包含所有已转换的 javascript 文件以及 package.json。然后,我必须再次 运行 npm i --production
来设置我的生产依赖项。所以我想让 electron-builder 做的是在安装完所有内容后准确复制 dist 目录:
electron-builder build --linux AppImage
这是我的package.json相关配置:
"main": "dist/app.js",
"build": {
"appId": "my.app",
"files": [
"dist/**/*"
]
},
我猜想通过这个配置我告诉它复制 dist 目录及其内容。 AppImage 文件已构建,如果我解压缩它,我可以看到在其中创建了一个 resources
目录,其中包含一个 app.asar
文件。如果我提取 asar 内容,我可以看到 node_modules
被放置在与 dist
相同的级别,而不是在它里面!!所以我有:
AppImage
-- resources
---- app.asar
------ node_modules
------ dist (everything except node_modules)
当我启动应用程序时,它明显抱怨找不到 node_modules
。 The docs 说有一些默认文件模式可以优先于用户定义的内容...
我也试过了:
"files": {
"from": "dist",
"to": "dist",
"filter": ["**/*"]
}
而且似乎无法找到 package.json
文件。
有人在 this similar question 年前问过,没有人回答。有什么帮助吗?
最后我找到了方法,我不得不用我在 docs 中找到的 属性 来调整配置:includeSubNodeModules
,默认为 [=12] =] 并且似乎在输出中包含 node_modules 子文件夹。此外,我还必须明确省略根 node_modules 文件夹,因为我不希望它出现在输出中。
"build": {
"appId": "myApplication",
"files": [
"dist/**/*",
"!node_modules"
],
"includeSubNodeModules": true
},
我有一个节点应用程序,我已经用 Electron 启动了。现在,我想用 electron-builder 打包它,但我正在处理这种奇怪的行为。通常,当我构建我的应用程序时,会生成一个 dist 文件夹,其中包含所有已转换的 javascript 文件以及 package.json。然后,我必须再次 运行 npm i --production
来设置我的生产依赖项。所以我想让 electron-builder 做的是在安装完所有内容后准确复制 dist 目录:
electron-builder build --linux AppImage
这是我的package.json相关配置:
"main": "dist/app.js",
"build": {
"appId": "my.app",
"files": [
"dist/**/*"
]
},
我猜想通过这个配置我告诉它复制 dist 目录及其内容。 AppImage 文件已构建,如果我解压缩它,我可以看到在其中创建了一个 resources
目录,其中包含一个 app.asar
文件。如果我提取 asar 内容,我可以看到 node_modules
被放置在与 dist
相同的级别,而不是在它里面!!所以我有:
AppImage
-- resources
---- app.asar
------ node_modules
------ dist (everything except node_modules)
当我启动应用程序时,它明显抱怨找不到 node_modules
。 The docs 说有一些默认文件模式可以优先于用户定义的内容...
我也试过了:
"files": {
"from": "dist",
"to": "dist",
"filter": ["**/*"]
}
而且似乎无法找到 package.json
文件。
有人在 this similar question 年前问过,没有人回答。有什么帮助吗?
最后我找到了方法,我不得不用我在 docs 中找到的 属性 来调整配置:includeSubNodeModules
,默认为 [=12] =] 并且似乎在输出中包含 node_modules 子文件夹。此外,我还必须明确省略根 node_modules 文件夹,因为我不希望它出现在输出中。
"build": {
"appId": "myApplication",
"files": [
"dist/**/*",
"!node_modules"
],
"includeSubNodeModules": true
},