强制 npm install 为其他平台安装可选依赖项
Force npm install to install optional dependencies for other platforms
我正在为 Visual Studio Team Services 构建构建任务。在此任务中,我使用 7zip-bin
为 linux、mac 和 windows.
打包 7zip 的二进制文件
这一切都很好,如果我能够将 package.json 部署到构建服务器,那么它会起作用,但是没有...构建任务在构建时包含其所有依赖项。
有没有办法强制 npm 以某种方式下载所有 OS 可选包?或者我必须在构建过程中自己下载文件并解压缩吗?
现在我正在使用
npm install 7zip-bin --save
这导致:
C:\temp>npm install
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: 7zip-bin-linux@^1.0.3 (node_moduleszip-bin\node_moduleszip-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_moduleszip-bin\node_moduleszip-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 machine 上,安装被跳过,我收到 EBADPLATFORM 错误。
我知道我不能 运行 我的 machine,但我需要将它们打包到 vsix
文件中(一个美化的 zip)所以当我的构建任务在这些其他平台上 运行ning 时我可以使用它们。
你应该依赖这 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
强制安装。
我正在为 Visual Studio Team Services 构建构建任务。在此任务中,我使用 7zip-bin
为 linux、mac 和 windows.
这一切都很好,如果我能够将 package.json 部署到构建服务器,那么它会起作用,但是没有...构建任务在构建时包含其所有依赖项。
有没有办法强制 npm 以某种方式下载所有 OS 可选包?或者我必须在构建过程中自己下载文件并解压缩吗?
现在我正在使用
npm install 7zip-bin --save
这导致:
C:\temp>npm install
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: 7zip-bin-linux@^1.0.3 (node_moduleszip-bin\node_moduleszip-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_moduleszip-bin\node_moduleszip-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 machine 上,安装被跳过,我收到 EBADPLATFORM 错误。
我知道我不能 运行 我的 machine,但我需要将它们打包到 vsix
文件中(一个美化的 zip)所以当我的构建任务在这些其他平台上 运行ning 时我可以使用它们。
你应该依赖这 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
强制安装。