首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强制npm安装以安装其他平台的可选依赖项

强制npm安装以安装其他平台的可选依赖项
EN

Stack Overflow用户
提问于 2017-02-22 16:16:17
回答 1查看 14.1K关注 0票数 7

我正在为构建一个构建任务。在这个任务中,我使用7zip-bin将用于linux、mac和windows的二进制文件打包为7zip。

这一切都很好,如果我有能力只将package.json部署到构建服务器上,它就能工作了,但是没有.生成任务在构建时包含其所有依赖项。

有没有办法迫使npm以某种方式下载所有操作系统可选的软件包?或者我必须在构建过程中自己下载并解压该文件?

现在我在用

代码语言:javascript
复制
npm install 7zip-bin --save

其结果是:

代码语言:javascript
复制
C:\temp>npm install
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: 7zip-bin-linux@^1.0.3 (node_modules\7zip-bin\node_modules\7zip-bin-linux):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for 7zip-bin-linux@1.0.3: wanted {"os":"linux","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: 7zip-bin-mac@^1.0.1 (node_modules\7zip-bin\node_modules\7zip-bin-mac):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for 7zip-bin-mac@1.0.1: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

运行时,不可能直接安装每个可选软件包。

代码语言:javascript
复制
npm install 7zip-bin-linux --save

在windows机器上,将跳过安装,我将得到一个EBADPLATFORM错误。

我知道我不能在我的机器上运行,但是我需要将它们打包到一个vsix文件中(一个美化的zip),这样我就可以在这些其他平台上运行构建任务时使用它们。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-22 19:02:49

您应该依赖于这3个可选包,因为您永远不知道7zip-bin是否会更改它的可选依赖项,这是您直接使用的。

例如:

代码语言:javascript
复制
dependencies: {
  "7zip-bin-mac": "^1.0.1",
  "7zip-bin-win": "^2.0.2",
  "7zip-bin-linux": "^1.0.3"
}

使用任何一种方式,您都需要运行npm install -f来强制安装。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42396791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档