package.json/package-lock.json理解

495 阅读1分钟

package-lock.json

  • 在package.json的前提下进一步对动态版本范围锁定
  • package-lock.json 能够看到包的依赖链
  • ^,~开头的版本号是动态的,动态匹配规则(x为向上匹配的版本) ^=a.x.x, ~=a.b.x
  • 修改package.json,然后install;单独安装某个包修改package.json,都可能会导致package.lock.json的更新,package.lock.json版本总是package.json文件容许的版本号的子集

入口字段

  • 多个入口字段目的是同时兼容支持 web端 和 server 端,需要在不同环境下加载npm包不同的入口文件
  • 前端开发,通过webpack打包,如果webpack的target为默认值web进行构建, 取node_modules包时优先级是 module> main
  • 服务端开发,通过node 文件名.js命令执行,取node_modules包时入口为main字段
  • 总结: 网上讲解很复杂还有browser字段,个人感觉没用,前端代码如果是esm模块,入口写module字段,commonjs模块写main字段,这样前端就会优先使用module,没有module然后找main字段,node环境只能够使用main字段