我正在为构建一个构建任务。在这个任务中,我使用7zip-bin将用于linux、mac和windows的二进制文件打包为7zip。
这一切都很好,如果我有能力只将package.json部署到构建服务器上,它就能工作了,但是没有.生成任务在构建时包含其所有依赖项。
有没有办法迫使npm以某种方式下载所有操作系统可选的软件包?或者我必须在构建过程中自己下载并解压该文件?
现在我在用
npm install 7zip-bin --save其结果是:
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"})运行时,不可能直接安装每个可选软件包。
npm install 7zip-bin-linux --save在windows机器上,将跳过安装,我将得到一个EBADPLATFORM错误。
我知道我不能在我的机器上运行,但是我需要将它们打包到一个vsix文件中(一个美化的zip),这样我就可以在这些其他平台上运行构建任务时使用它们。
发布于 2017-02-22 19:02:49
您应该依赖于这3个可选包,因为您永远不知道7zip-bin是否会更改它的可选依赖项,这是您直接使用的。
例如:
dependencies: {
"7zip-bin-mac": "^1.0.1",
"7zip-bin-win": "^2.0.2",
"7zip-bin-linux": "^1.0.3"
}使用任何一种方式,您都需要运行npm install -f来强制安装。
https://stackoverflow.com/questions/42396791
复制相似问题