我正在用电子14和节点v14.17.7构建一个应用程序,分别是NPM6.14.15来构建我的本地节点模块。
每次执行npm install时,我的所有本机依赖项都是从源重新构建的(因为电子版本和节点版本的组合不能作为回购中预先构建的版本使用)。
下面是从日志中进行的一个尝试:
• electron-builder version=22.14.13
• loaded configuration file=package.json ("build" field)
• rebuilding native dependencies dependencies=drive-name@1.0.3 platform=darwin arch=x64
• install prebuilt binary name=foo version=9.2.4 platform=darwin arch=x64 napi=
• build native dependency from sources name=foo
version=9.2.4
platform=darwin
arch=x64
napi=
reason=prebuild-install failed with error
(run with env DEBUG=electron-builder to get more information)
prebuild-install WARN install prebuilt binaries enforced with --force!
prebuild-install WARN install prebuilt binaries may be out of date!以下信息非常突出:
WARN install prebuilt binaries enforced with --force!这条线是打印的这里
if (opts.force) {
log.warn('install', 'prebuilt binaries enforced with --force!')
log.warn('install', 'prebuilt binaries may be out of date!')不幸的是,我不知道或不知道force在哪里被设置为真。有人能帮忙吗?
build字段的package.json是:
"build": {
"appId": "com.foo.foo",
"productName": "foo",
"buildVersion": "1.0.0",
"publish": {
"provider": "s3",
"bucket": "foo",
"region": "foo",
"endpoint": "https://foo.s3.amazonaws.com"
},
"afterPack": "./scripts/afterPack.js",
"afterSign": "./scripts/notarization.js",
"afterAllArtifactBuild": "./scripts/notarization_dmg.js",
"files": [
"dist/**/*",
"main.js",
],
"extraResources": [
"./extra/**"
],
"dmg": {
"sign": true
},
"mac": {
"binaries": [
"./python34/bin/python3.4",
],
"target": [
"zip",
"dmg"
],
"hardenedRuntime": true,
"entitlements": "./scripts/entitlements.mac.plist",
"icon": "./public/icons/mac/icon.icns"
},
"directories": {
"output": "foo-release",
"buildResources": "public"
}发布于 2022-05-09 02:38:51
在运行npm之前设置DEBUG=electron-builder以获取更多信息。
还请考虑预构建-安装的这份说明。
与预构建与预构建安装相匹配,我们建议将预构建与节点-gyp-构建结合起来。 使用prebuildify,所有预构建的二进制文件都会在发布到npm的包中提供,这意味着不需要像在预构建中那样单独的下载步骤。这种方法的讽刺之处在于,当每个平台被捆绑时,下载所有预构建的二进制文件要比下载一个预构建二进制文件作为安装脚本要快。 优点:
编辑:尝试
"npmRebuild": "false", (通过)opts.force = false设置opts.force = falsenpm install --verbose以获得更多的输出和npm install --timing来保存调试日志,以便在调试日志过多时进行检查。--inspect-brk和$NODE之间添加一个npm副本.然后使用Chromium的devtools/您的IDE在浏览器中逐步完成热键F10和F11的安装过程。您可以预先设置断点,或者通过debugger;和run插入断点,直到在那里用热键F8加速这个进程。https://stackoverflow.com/questions/72000180
复制相似问题