【问题标题】:Different behaviour between 'npm run' command and windows console“npm run”命令和 Windows 控制台之间的不同行为
【发布时间】:2017-02-16 07:54:04
【问题描述】:

这是我困扰了好几天的奇怪问题。

我需要创建一个 asar 打包文件,使用 electron "asar" 命令完成,如下所示:

c:/asar pack app app.asar

这会将我的“app”文件夹打包到打包文件“app.asar”中。运行正常。

目标

我需要将此指令包含在我的 package.json 脚本文件中,以便生成构建过程,链接其他操作。

问题:

好吧,当我运行这个命令时,通过像 c:/npm run create-asar 这样的 package.json 脚本或使用 gulp-asar 进程,它会创建 app.asar 文件,但似乎是 损坏。

无法解包,进程抛出错误,无法被electron app访问

我不知道为什么。

我尝试从控制台运行完全相同的命令,在 package.json 中,完全相同,并且都具有上述结果。

有什么区别

版本信息

  • npm: v3.10.6
  • 节点:v4.5.0
  • asar: v0.13.0
  • 电子:v1.4.3

【问题讨论】:

  • 也许您遇到的问题没有。 74 关于早期版本中的多字节字符。尝试将asar 更新到较新的版本。该问题已在版本 0.12.3 中得到修复。或者,如果更新不可行,则检查文件名/内容中的任何 多字节字符 并在初始打包之前更改它们。
  • 我会尝试更新一些包,我在 asar 上使用 v0.13,但我会看看。
  • 还是不行。我将使用软件包版本更新问题。
  • 那么,如果您运行的是 v0.13,则不是 多字节字符 问题。尝试安装 asar 作为项目依赖项。 IE。 cd 到项目目录,运行npm i -D asar 将其添加到package.json 中的devDependencies。然后将你的 npm-script 更新为"create-asar": "node_modules/.bin/asar pack app app.asar"。 (注意 asar 正在通过 node_modules .bin 文件夹运行)。然后运行$ npm run create-asar,看看是否解包成功。
  • @RobC 与您的指示有效!所以它应该是与另一个包相关的东西,我会试着弄清楚它到底是什么,但请随意发布这个作为答案,我会将它标记为正确,因为它就像一个魅力一样工作。

标签: node.js batch-file npm electron asar


【解决方案1】:

在本地安装asar作为项目依赖,cd到你的项目目录并运行:

$ npm install asar --save-dev

将您的 npm-script 更改为以下内容:

"scripts": {
  "create-asar": "node_modules/.bin/asar pack app app.asar"
},

注意: asar 正在通过本地 node_modules/.bin 文件夹执行。

然后运行$ npm run create-asar,随后检查是否解包成功。

【讨论】:

  • 工作了,所以它可能与另一个包有关,或者是一个全局安装的包。谢谢老兄。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-09
  • 2021-04-10
  • 2020-02-29
  • 2011-02-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多