【问题标题】:Node JS unable to execute asar archiveNode JS 无法执行 asar 归档
【发布时间】:2017-04-22 12:58:38
【问题描述】:

很简单。我在 Windows 8 上,我使用 asar 模块打包了一个包含节点应用程序的文件夹。

我跑了node app.asar 并得到了错误

SyntaxError: Unexpected token ILLEGAL at exports.runInThisContext (vm.js:53:16) "(function (exports, require, module, __filename, __dirname) { ?"

在哪里?显然是一个无效字符。

如果我可以在打包之前毫无问题地运行应用程序,为什么这个存档包含无效字符,并且 asar 存档应该可以被 nodejs 进程读取

【问题讨论】:

    标签: javascript node.js asar


    【解决方案1】:

    您不能像普通的 Nodejs 应用程序一样运行 asar 打包文件,这是因为 asar 是为 Electron 设计的,而不是为普通的 Nodejs 应用程序设计的。但!尝试将电子安装为您的项目依赖项或只是普通模块

    npm install electron
    

    或全局安装

    npm install -g electron
    

    因此您不必在必须运行打包的 asar 文件的每个项目上重新安装它

    还有一些注意事项:安装 Electron 的时间有点长,因为它不是普通的模块

    安装完成后,试试

    electron file.asar
    

    如果应用程序像正常的 nodejs 应用程序一样运行并测试它

    编辑: 也许在不久的将来你想尝试用 asar 打包你的“Nodejs App”,这样客户端就不会看到你的源代码,然后将它部署到你的客户端

    这是发布您的 Electron 应用程序的 Electron 方式(但也许,它也可以用于其他应用程序) GitHub Link

    【讨论】:

    • 感谢您的回答。不幸的是,我需要节点进程作为服务运行,而电子拒绝这样做。从那以后我找到了其他解决方案
    • @DanielOlivier 很高兴听到您有解决方案
    • @DanielOlivier,你能告诉我解决方案吗?我有一个类似的用例,我想将我的节点应用程序作为系统服务运行。提前致谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-28
    • 2015-07-24
    • 2021-12-19
    • 1970-01-01
    • 2016-08-06
    • 1970-01-01
    相关资源
    最近更新 更多