节点 JS 无法执行 asar 存档
Node JS unable to execute asar archive
很简单。我在Windows 8,我用asar模块打包了一个包含node app的文件夹。
我 运行 node app.asar
得到了错误
SyntaxError: Unexpected token ILLEGAL at exports.runInThisContext (vm.js:53:16) "(function (exports, require, module, __filename, __dirname) { ?"
在哪里?显然是无效字符。
如果我可以 运行 应用程序在打包之前没有问题,为什么这个存档包含无效字符并且 asar 存档应该可以被 nodejs 进程读取
你不能 运行 asar 打包文件作为普通的 Nodejs 应用程序,那是因为 asar 是为 Electron 而设计的,而不是为普通的 Nodejs 应用程序设计的。但!尝试安装 electron 作为你的项目依赖或者只是普通模块
npm install electron
或全局安装
npm install -g electron
所以你不必在每个项目上重新安装它你必须 运行 打包的 asar 文件
还有一些注意事项:安装 Electron 的时间有点长,因为它不是普通模块
完成安装后,尝试
electron file.asar
并测试它是否应用程序 运行 作为普通的 nodejs 应用程序
编辑:
也许在不久的将来你想尝试用 asar 打包你的“Nodejs 应用程序”这样客户端就不会看到你的源代码,然后将它部署到你的客户端
这是发布 Electron 应用程序的 Electron 方式(但也许它也可以用于其他应用程序)
GitHub Link
很简单。我在Windows 8,我用asar模块打包了一个包含node app的文件夹。
我 运行 node app.asar
得到了错误
SyntaxError: Unexpected token ILLEGAL at exports.runInThisContext (vm.js:53:16) "(function (exports, require, module, __filename, __dirname) { ?"
在哪里?显然是无效字符。
如果我可以 运行 应用程序在打包之前没有问题,为什么这个存档包含无效字符并且 asar 存档应该可以被 nodejs 进程读取
你不能 运行 asar 打包文件作为普通的 Nodejs 应用程序,那是因为 asar 是为 Electron 而设计的,而不是为普通的 Nodejs 应用程序设计的。但!尝试安装 electron 作为你的项目依赖或者只是普通模块
npm install electron
或全局安装
npm install -g electron
所以你不必在每个项目上重新安装它你必须 运行 打包的 asar 文件
还有一些注意事项:安装 Electron 的时间有点长,因为它不是普通模块
完成安装后,尝试
electron file.asar
并测试它是否应用程序 运行 作为普通的 nodejs 应用程序
编辑: 也许在不久的将来你想尝试用 asar 打包你的“Nodejs 应用程序”这样客户端就不会看到你的源代码,然后将它部署到你的客户端
这是发布 Electron 应用程序的 Electron 方式(但也许它也可以用于其他应用程序) GitHub Link