Jab*_*124 5 javascript npm reactjs
我有一个大型的 React 应用程序正在生产中,我想知道是否最好为我的包使用固定版本?我听说使用插入符号 (^) 是一种很好的做法,但在我看来,这会让应用程序面临更多错误?
我已经用谷歌搜索了这个问题很多次,^ 和固定版本之间似乎存在分歧。(npm) 文档中是否有关于使用哪种方法的明确答案?
在开发过程中,您可以选择您喜欢的任何一个,但我建议您在开始测试应用程序之前、投入生产之前进行收缩包装。锁定依赖关系:
npm shrinkwrap
Run Code Online (Sandbox Code Playgroud)
此命令将重新调整
package-lock.json
为可发布的命令npm-shrinkwrap.json
,或者只是创建一个新的命令。由该命令创建和更新的文件将优先于任何其他现有或未来的package-lock.json
文件。有关 npm 中包锁的设计和用途的详细说明,请参阅npm-package-locks
。
这样你就可以保留在其中声明的依赖项package.json
(波形符/脱字号),但在其中声明的确切版本npm-shrinkwrap.json
只会在 npm 安装时使用。
我个人在投入生产之前遇到了一个问题,当使用~
(更严格的)声明的依赖项被更新并引入了错误(补丁/错误修复不应该发生这种情况)时。这种事只发生过一次,但我不想挑战命运。
您始终可以npm-shrinkwrap.json
通过首先npm update <package_name>
指定需要更新的包,然后重新npm shrinkwrap
更新现有的npm-shrinkwrap.json
.
...并且不要忘记npm ci