javascript - 有条件地在 package.json 中安装不同版本的 npm 包
问题描述
我正在开发一个使用私有包的网络应用程序。在某些情况下,我宁愿使用包的本地版本或该包的不同版本。
是否有任何解决方案表明在 package.json 中使用不同版本的包?
IE:
npm install --local
而我的 package.json 看起来像:
...
"dependencies": {
...
"my_package": if(local) "address_to_local_package/" else "5.6.1"
...
}
解决方案
npm
不适应这一点(老实说,可能不应该)。这似乎是通常在运行时通过NODE_ENV
环境变量或类似机制处理的事物类型。模块根据NODE_ENV
设置为"production"
或改变行为"development"
。(但这只是惯例。您可以根据需要使用值"local"
。)因此,与其安装不同版本的模块,不如根据该环境变量的值,有一个版本的行为不同。
如果你真的想要完全安装不同的代码库,这将需要一些努力,但你可以编写一个postinstall
脚本npm
来运行。然后,您的模块只不过是一个脚本,然后根据环境变量或命令行标志postinstall
计算出实际安装的内容。不过,这对我来说似乎很脆弱。如果你走这条路,我会认真考虑你是否在这里解决了正确的问题。NODE_ENV
看起来更优雅和传统。
推荐阅读
- css - Sass 自动使用变量制作颜色变体
- javascript - 从数据库中提取 ByteArrays 并将它们转换回文件以传递给局部视图
- php - PHP中增加/减少Cookie的按钮[帮助PLS]
- javascript - 使用touchmove触发悬停事件
- powershell - 获取远程会话堆栈跟踪
- spring - 如何在嵌入式 tomcat 服务器上部署 Spring Boot Web 应用程序,来自 Spring Boot 本身
- xcode - 在 OSX Mojave 上安装虚幻引擎
- javascript - 在Angular应用程序中打开的菜单中单击时防止md-menu关闭
- python - 属性错误:“列表”对象没有属性.....
- javascript - 在数组中,如何在javascript中确保元素不重复?