2
我正在构建Visual Studio Team Services的构建任务。在这个任务中,我使用7zip-bin
为Linux,Mac和Windows打包7zip的二进制文件。强制安装npm以安装其他平台的可选依赖关系
这是非常好的,它会工作,如果我有能力只将package.json部署到构建服务器,但没有......构建任务包含构建时的所有依赖关系。
有没有办法强制npm以某种方式下载所有操作系统可选软件包?还是必须在构建过程中自己下载文件并将其解压缩?
现在,我使用
npm install 7zip-bin --save
导致:
C:\temp>npm install
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected]^1.0.3 (node_modules\7zip-bin\node_modules\7zip-bin-linux):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"linux","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected]^1.0.1 (node_modules\7zip-bin\node_modules\7zip-bin-mac):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
直接安装每个可选包是不可能的,当我在运行
npm install 7zip-bin-linux --save
Windows机器,安装被跳过,我得到一个EBADPLATFORM错误。
我明白我不能运行这些在我的机器上,但我需要将它们打包到一个vsix
文件(ZIP荣耀),所以当我的生成任务是在这些平台上运行,我可以使用它们。
当我这样做时,其中只有一个是实际下载和安装的(或者我在安装时遇到错误)。结果,'vsix'只与构建扩展的平台兼容。 – jessehouwing
啊,我看到,它不是自己指定它们时安装的。但是,您可以使用'-f'或'--force'标志来强制安装:)我更新了答案。 –
啊!这似乎工作! PS'7zip-bin'执行相关软件包的自动解析。 – jessehouwing