package.json 分手后的思念是犯贱 2021-11-11 14:24 230阅读 0赞 ### 生成方法 ### 一般在程序根目录,使用 **npm init**自动生成,然后进行配置 ### 字段简介 ### * name:项目的名字,不要把node或者js放在名字中; * version:项目版本号,改变包的同时应该也改变版本号; * description :描述包作用; * dependencies:指定项目运行时依赖的包名和版本号(或者版本号范围),可以用 file 配置本地依赖(在把包发不到公共registry时不要如此设置);如 * { "name": "baz", "dependencies": { "bar": "file:../foo/bar" } } * devDependencies:如果有人计划在他们的项目中下载和使用你的模块,但他们可能并不想或并不需要你开发所使用的外部测试和文档框架,这些项将会在根目录下执行npm link或npm install时被安装; * engines:指定 node 或/和 npm 的工作版本,; * private: 可防止私包发布,设置true 时,npm会拒绝发布它; * repository :指定代码存放位置,设置好后,项目推送到远程地址时可以只是用 npm publish; "repository" : { "type" : "git", "url" : "http://github.com/isaacs/npm.git" } "repository" : { "type" : "svn", "url" : "http://v8.googlecode.com/svn/trunk/" } * scripts:由脚本命令组成的hash对象; * config:配置用于包脚本中的跨版本参数; * keywords:项目简介,方便npm search查询; * homepage:项目官网url,这和“url”不一样。如果你放一个“url”字段,registry会以为是一个跳转到你发布在其他地方的地址; * bugs:方便用户提交项目问题的url 或邮件地址; license:许可证; * files:包含项目中文件的数组; * main:配置一个文件名指向模块的入口文件,这应该是一个相对于根目录的文件路径; * bin:配置一个或多个可执行的文件; * man:指定一个单一的文件或者一个文件数组供man程序使用; 还有一些非官方字段 ### 注意事项 ### 1. package.json可以手工编写,也可以使用 npm init 命令自动生成; 2. package.json中添加中文注释会编译出错; 3. package.json中最重要的字段是 name 和 version。他们都是必须的,如果没有就无法install。name和version一起组成的标识在假设中是唯一的。改变包应该同时改变version。 4. 每个项目根目录下一般都有package.json文件,来定义项目需要的各种模块,以及项目配置信息; 5. package.json必须是真正的json,不能是js对象。 ### package.json和package-lock.json ### package.json: 主要用来定义项目中需要依赖的包 package-lock.json: 在 \`npm install\`时候生成一份文件,用以记录当前状态下实际安装的各个npm package的具体来源和版本号。 '^' : 放在版本号之前,表示向后兼容依赖,说白了就是在大版本号不变的情况下,下载最新版的包 项目中引入的包版本号之前经常会加^号,每次在执行npm install之后,下载的包都会发生变化,为了系统的稳定性考虑,每次执行完npm install之后会对应生成package-lock文件,该文件记录了上一次安装的具体的版本号,相当于是提供了一个参考,在出现版本兼容性问题的时候,就可以参考这个文件来修改版本号即可。 参考: [json详解][json] [非官方字段][Link 1] [json]: https://www.cnblogs.com/nullcc/p/5829218.html [Link 1]: https://segmentfault.com/a/1190000016365409
还没有评论,来说两句吧...