Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用pack命令报错 #7

Closed
wanglei1020 opened this issue Jun 24, 2024 · 7 comments
Closed

使用pack命令报错 #7

wanglei1020 opened this issue Jun 24, 2024 · 7 comments

Comments

@wanglei1020
Copy link

按照文档的方式二使用,在运行 sys-shim pack --input https://example.com/index.html 命令时报错:

从 https://example.com/favicon.ico 获取图标错误:
HTTPError: Response code 404 (Not Found)
将使用默认图标
{
  nameSuffix: true,
  input: 'C:\\Users\\wanglei\\AppData\\Local\\Temp/pack.temp',
  icon: 'C:\\Users\\wanglei\\AppData\\Local\\Temp/pack.temp/favicon.ico',
  out: 'https!example.com!index.html',
  unzip: 'sys-shim-app/https!example.com!index.html',
  password: '',
  _: [ 'pack' ]
}
node:internal/errors:984
  const err = new Error(message);
              ^

Error: Command failed: C:\Users\wanglei\AppData\Roaming\fnm\node-versions\v20.14.0\installation\node_modules\sys-shim\/script/npm-pkg/lib/WinRAR.exe a -r -ep1 -y -ibck -sfx -iicon"C:\Users
\wanglei\AppData\Local\Temp/pack.temp/favicon.ico" -z"C:\Users\wanglei\AppData\Local\Temp/comment.txt" "https!example.com!index.html-2024-06-24-11-05-23" C:\Users\wanglei\AppData\Local\Temp/pack.temp/*
    at genericNodeError (node:internal/errors:984:15)
    at wrappedFn (node:internal/errors:538:14)
    at checkExecSyncError (node:child_process:890:11)
    at Object.execSync (node:child_process:962:15)
    at zip (file:///C:/Users/wanglei/AppData/Roaming/fnm/node-versions/v20.14.0/installation/node_modules/sys-shim/script/npm-pkg/bin/pack.mjs:137:6)
    at fn (file:///C:/Users/wanglei/AppData/Roaming/fnm/node-versions/v20.14.0/installation/node_modules/sys-shim/script/npm-pkg/bin/pack.mjs:177:9)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async file:///C:/Users/wanglei/AppData/Roaming/fnm/node-versions/v20.14.0/installation/node_modules/sys-shim/script/npm-pkg/bin/index.mjs:20:5 {
  status: 6,
  signal: null,
  output: [ null, null, null ],
  pid: 25392,
  stdout: null,
  stderr: null
}

Node.js v20.14.0

完全复制的文档里的命令,唯一的区别可能是我使用了fnm来管理node版本,但这个应该不会有影响。

image

@wll8
Copy link
Owner

wll8 commented Jun 24, 2024

问题未复现。
image

我这边正在使用 v20 试试看。
image

node v20 也正常,未复现问题。

方便提供更多的信息吗?比如系统上是否安装查毒软件?windows 安全防护是否打开?检查你本地node_modules\sys-shim 下的文件是否完整(可以与线上内容做比较)?

@wanglei1020
Copy link
Author

比如系统上是否安装查毒软件?

只有系统自带的 window defender,没有安装别的杀毒软件。
实际上在我 npm i sys-shim -g,后,window defender 会把包里main.exe隔离掉,不过我已经恢复了。
并且后面的尝试中,我关掉了 window defender,并重新进行了 npm i sys-shim -g

检查你本地node_modules\sys-shim 下的文件是否完整(可以与线上内容做比较)?

我看了一下,是完整的。

方便提供更多的信息吗?

这是npx envinfo的结果:

System:
    OS: Windows 11 10.0.22631
    CPU: (16) x64 AMD Ryzen 7 5800H with Radeon Graphics
    Memory: 3.05 GB / 15.36 GB
  Binaries:
    Node: 20.14.0 - ~\AppData\Local\fnm_multishells\20420_1719197231118\node.EXE
    Yarn: 1.22.21 - ~\AppData\Roaming\npm\yarn.CMD
    npm: 10.7.0 - ~\AppData\Local\fnm_multishells\20420_1719197231118\npm.CMD
    pnpm: 9.1.4 - ~\AppData\Local\fnm_multishells\20420_1719197231118\pnpm.CMD
  Managers:
    Cargo: 1.67.1 - ~\.cargo\bin\cargo.EXE
    Maven: 3.8.4 - C:\java\apache-maven-3.8.4\bin\mvn.CMD
  Utilities:
    Git: 2.40.1.
    Curl: 8.7.1 - C:\WINDOWS\system32\curl.EXE
  Virtualization:
    Docker: 20.10.17 - C:\Program Files\Docker\Docker\resources\bin\docker.EXE
    Docker Compose: 1.29.2 - C:\Program Files\Docker\Docker\resources\bin\docker-compose.EXE
  SDKs:
    Windows SDK:
      AllowDevelopmentWithoutDevLicense: Enabled
      AllowAllTrustedApps: Enabled
      Versions: 10.0.22000.0
  IDEs:
    Android Studio: AI-213.7172.25.2113.9123335
    VSCode: 1.89.1 - C:\Program Files\Microsoft VS Code\bin\code.CMD
  Languages:
    Java: 1.8.0_351
    Rust: 1.67.1
  Databases:
    MySQL: undefined - C:\Program Files\mysql\bin\mysql.EXE
    SQLite: 3.32.2 - C:\Users\wanglei\AppData\Local\Android\Sdk\platform-tools\sqlite3.EXE
  Browsers:
    Edge: Chromium (126.0.2592.68)
    Internet Explorer: 11.0.22621.3527

@wll8
Copy link
Owner

wll8 commented Jun 24, 2024

不知道是不是 winrar 程序的问题,手动运行命令呢?

:: 跳转到压缩程序所在目录
cd /d C:\Users\wanglei\AppData\Roaming\fnm\node-versions\v20.14.0\installation\node_modules\sys-shim\/script/npm-pkg/lib/

:: 运行压缩命令
WinRAR.exe a -r -ep1 -y -ibck -sfx -iicon"C:\Users\wanglei\AppData\Local\Temp/pack.temp/favicon.ico" -z"C:\Users\wanglei\AppData\Local\Temp/comment.txt" "https!example.com!index.html-2024-06-24-11-05-23" C:\Users\wanglei\AppData\Local\Temp/pack.temp/*

先手动运行命令打包看看,不行的话看下方便远程不(向日葵之类的)?帮助我排查程序问题,非常感谢。

另外,我也找台 win11 测试一下。

@wll8
Copy link
Owner

wll8 commented Jun 24, 2024

经测试,win11 上也没问题:

356cc13e7d42739dc2792131756e56b

image

@wanglei1020
Copy link
Author

wanglei1020 commented Jun 24, 2024

手动运行命令没有报错,但是也没生成结果,麻烦向日葵看下呢。
(脱敏)

@wll8
Copy link
Owner

wll8 commented Jun 24, 2024

经测试,在 wanglei1020 的设备上,winrar 无法生成 exe(界面模式下可以)。

  • 待打包的 pack.temp 目录中的程序可正常使用
  • 使用 sys-shim 携带的 winrar 不能生成
  • 命令 wanglei1020 设备上安装的 winrar 也不能
  • 如果把该设备上的 winrar 复制到旁边另一台 win11 设备上时,能生成
  • 生成后的程序在有问题的 win11 上可正常使用

所以可能是 winrar 程序命令行的自解压模板的系统兼容性问题(ps:像 winrar 这么强的程序,都有此问题?)。

当前缓解方案上:

sys-shim 也会尝试寻找备用的自解压程序生成方案。

@wanglei1020
Copy link
Author

经测试,在 wanglei1020 的设备上,winrar 无法生成 exe(界面模式下可以)。

  • 待打包的 pack.temp 目录中的程序可正常使用
  • 使用 sys-shim 携带的 winrar 不能生成
  • 命令 wanglei1020 设备上安装的 winrar 也不能
  • 如果把该设备上的 winrar 复制到旁边另一台 win11 设备上时,能生成
  • 生成后的程序在有问题的 win11 上可正常使用

所以可能是 winrar 程序命令行的自解压模板的系统兼容性问题(ps:像 winrar 这么强的程序,都有此问题?)。

当前缓解方案上:

sys-shim 也会尝试寻找备用的自解压程序生成方案。

补充下测试过程:
经过测试是报:无法打开 ...\node modules\sys-shim\script\npm-pkg\lib\zip. sfx 系统找不到指定的文件。,将 zip.sfx放到 lib 文件夹下就可以正常打包。(奇怪的是此时本地的 winrar 也可以正常打包了,可能是 winrar 有什么全局的配置)最新版 0.0.1-15 已解决该问题。

wll8 added a commit that referenced this issue Oct 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants