package.json/package-lock.json理解
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字段