我正在为Visual Studio Team Services构建构建任务.在这个任务中,我使用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),这样当我的构建任务在这些其他平台上运行时我可以使用它们.
最佳答案 你应该依赖这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来强制安装.