【发布时间】:2021-03-19 09:39:55
【问题描述】:
我有一个节点应用程序,它在带有 ARM 处理器的小型 linux 设备上运行。我在 macOS 中开发,应用程序中有一些特定于平台的依赖项。现在我只是在 mac 上运行 npm install 并将整个代码库、node_modules 和所有内容复制到 linux 设备上。它似乎运行良好,但我不确定它是否会继续这样做。也许它只是还没有走上依赖于 mac 特定代码的执行路径。
我想我可以在 linux 设备上运行 npm install,但这意味着我们必须有一个可供我们的 CI/CD 管道使用,这将是一个令人头疼的问题,而且从长远来看可能不是一个现实的解决方案.
还有哪些其他选择?有没有办法强制 npm 安装依赖项,就好像它在 linux ARM 盒子上一样?我知道您可以使用 electron-packager 对电子应用程序执行此操作。非电子节点应用可以这样做吗?
仅供参考,我正在使用以下命令来确定存在 macOS 特定的依赖项:
find node_modules -name "*.node" | xargs file
返回
node_modules/snappy/build/Release/binding.node: Mach-O 64-bit bundle x86_64
【问题讨论】:
-
如果您只想创建一个可执行文件,那么pkg 可能适合您
-
@BraveButter 我看到了那个模块,但顶部有一个免责声明,上面写着
Disclaimer: pkg was created for use within containers and is not intended for use in serverless environments.我没有在容器中运行它。
标签: node.js npm dependencies