package.json详解,package.json作用

  package.json详解,package.json作用

  管理本地安装的npm软件包的最佳方式是创建package.json文件。本文将带你浏览package.json文件,希望对你有帮助!

  了解package.json

  在每个项目(从npm下载的包,或者其他nodejs项目)的根目录下,一般都有一个package.json文件,这个文件定义了这个项目需要的各个模块,以及项目的配置信息(比如名称、版本、许可证、如何启动项目、运行脚本等元数据)。npinstall命令根据这个配置文件自动下载所需的模块。

  Package.json文件是一个json对象,这个对象的每个成员都是当前项目的一个设置。例如,name是项目名称,version是版本(遵循“主要版本、次要版本和次要版本”的格式)。它还将在项目的生命周期中扮演多个角色,开发、测试和在线发布。

  package.json的作用

  作为一个描述文件,它描述了你的项目所依赖的包,允许我们使用“语义版本规则”(后面会介绍)来表示你的项目所依赖的包的版本,这样你的build就可以更好地与其他开发者共享,也便于重用package.json如何创建

  1、使用命令行工具客户端CLI

  Ninit这将启动命令行调查表,它将在您启动命令的目录中创建package.json。

  2、创建默认值

  要获取默认值package.json,请使用-yes或-y标志运行npm init:

  M init-y这个方法使用从当前目录提取的信息为package.json生成默认值,跳过回答问题的步骤。

  3、手动创建

  直接在项目根目录下新建一个package.json文件,然后输入相关内容。请参考下面package.json的注释。

  package.json文件常见字段详解

  1、姓名

  这个名称可能会作为参数传递到require()中,所以它应该很短,但也要有明确的含义。

  2、 version

  版本必须可由npm依赖的节点服务器模块解析。定义当前项目的迭代进度。(遵循“主要版本、次要版本和次要版本”的格式)

  可能现在很多朋友不关注也不关心版本号了,更多的使用产品的版本号,或者git hashcode方法。

  3、描述

  如果package.json中没有描述信息,npm将使用项目中README.md的第一行作为描述信息。这个描述信息有助于别人搜索你的项目,建议把描述信息写好。

  4、主要

  这个字段的默认值是模块根目录下的index.js。

  5、剧本

  参考:http://www.ruanyifeng.com/blog/2016/10/npm_scripts.html

  scripts配置执行的脚本

  1)执行命令echo xxx。

  执行node_modules/.bin下的文件为什么可以执行呢?

  当我执行npm run时,我将自动创建一个新的Shell,并在这个Shell中执行指定的脚本命令。所以只要是Shell(通常是Bash)可以运行的命令,都可以用npm脚本编写。节点模块/。当前目录中的bin也会被复制到当前系统的path中(只是临时复制,执行后,PATH变量会恢复到原来的状态),所以所有的脚本都在node_modules/中。当前目录的bin子目录可以直接通过脚本名调用,不需要添加路径。

  例如:

  当我们使用node执行一个node.js服务时,节点文件可以使用node server.js我们也可以使用webpack的包前端文件,webpack-dev-server。当然,webpack和webpack-dev-server是需要安装的依赖模块;

  脚本:{

  build : web pack-mode=development ,

   dev : web pack-dev-server-mode=development-content base=。/dist ,

  服务器“:”节点app.js

  }我们在命令行工具中输入npm run server,我们会调用node app.js来帮助我们运行。

  简写形式:

  Npstart是npm运行开始。

  Npstop是npm运行停止的缩写。

  Npm测试是npm运行测试的缩写。

  Mrestart是NPM运行停止NPM运行重启NPM运行启动常用脚本-在线收集的缩写。

  //删除目录

  clean: rimraf dist/* ,

  //在本地设置HTTP服务

  serve: http-server -p 9090 dist/,

  //打开浏览器

  open:dev : opener http://localhost:9090 ,

  //实时刷新

  livere load : live-reload-port 9091 dist/,

  //生成一个HTML文件

  build:html : jade index . jade dist/index . html ,

  //只要CSS文件更改,就重新执行构建。

  watch:CSS : watch NPM run build:CSS assets/styles/,

  HTML文件更改后立即重新执行构建。

  watch:html: watch npm运行build:html assets/html ,

  //部署到亚马逊S3

  部署:生产: s3-cli同步。/dist/S3://example-com/prod-site/,

  //构建favicon

  build:favicon :节点脚本/favicon.js ,

  start : cross-ENV NODE _ ENV=生产节点server/index.js ,6、dependencies、devDependencies

  该值指向一个对象。这个对象的每个成员都由模块名和相应的版本要求组成,表示依赖的模块及其版本范围。

  默认的package.json是不可用的,它将在我们安装npm install的模块时生成。

  npm快速安装

  npm快速安装-保存

  Npm install express - save-dev上面的代码表示express模块是单独安装的,

  后面没有参数时,表示安装到dependencies属性,-save参数表示将模块写入dependencies属性,- save-dev表示将模块写入devDependencies属性。7、捆绑依赖

  8、同伴依赖性

  比如你的项目依赖于模块A和模块B的1.0版本,模块A本身依赖于模块B的2.0版本。

  {

  姓名:柴如约,

  peerDependencies :

  柴: 1.x

  }

  }上面的代码指定了在安装chai-as-promised模块时,主程序chai必须一起安装,chai的版本必须是1.x,如果你的项目指定的依赖项是chai的2.0版本,就会报错。

  9、垃圾箱

  在项目的根目录下创建/bin/www文件。

  #!/usr/bin/envnodepackage.json。

  bin:{

  lee-cli :。/bin/www

  }npm link将包中属性bin的值路径添加到全局链接中,以创建快捷连接。

  在命令行上执行lee-cli将执行bin/www文件。流程是:

  在上面的例子中,www将建立符号链接node_modules/。bin/www。因为node_modules/。bin/directory会在运行时添加系统的PATH变量,npm运行时,可以直接通过命令调用这些脚本,不需要路径。

  10、配置

  {

  名称:包装,

  config : { port : 8080 },

  脚本:{ start : node server.js }

  }如果你想改变,我们可以用

  npm配置集包:端口8011、引擎

  引擎 :

  节点 :

  =0.10.3 0.12

  }12、执照

  参考:choosealicense.com/精选许可证。

  比如:MIT:最大权限,别人下载你的代码可以改,默认安装值。

  13、作者

  14、私人

  这是一种防止在私有包之外发布的方法。如果您想要包装一个包,并且只将它发布到一个特定的注册表(例如,一个内部注册表),您可以使用下面的publishConfig字典来描述它,以便在发布时覆盖注册表配置参数。

  15、关键词

  16、操作系统

  17、风格

  18、仓库

  19、主页

  版本问题:

  我们发表项目的时候,一盘使用npm + git

  使用npm版本补丁(补丁会改变版本的第三位;使用git标记执行将自动使用git上npm版本minor的版本号的第二位数字;同步git版本;使用npm version major更改版本号的第一位数字;同步git版本;npm版本[new version major minor patch premajor preminor prepatch pre release from-git]

  主要:主要版本号

  次要:次要版本号

  补丁:补丁号

  Premajor:准备主要版本。

  预修补:准备次要版本

  预发布:预发布版本ps:注意,如果报告错误:Git工作目录不干净

  这意味着您现在需要git状态来保持干净。

  git添加。

  Git commit -mpackage.json详细解释 NPM版monitor-m 增加版本号

  git push -u origin master如何制定规则?

  作为消费者,我们可以在package.json文件中声明我们能接受这个包的更新到什么程度(假设当前版本是1.2.4):

  如果只打算接受补丁版本的更新(即最后一位的更改),可以这样写:

  1.2

  1.2.x

  ~1.2.4如果接受次要版本的更新(第二次改动),可以这样写:

  一个

  1.x

  1.2.4如果你能接受大版本的更新(自然接受小版本和补丁版本的改动),你可以这样写:

  *x总结:总共有三种版本变化。如果您接受依赖包的更新,请准确地将版本号写入以前的版本号。

  版本周期、阶段:

  alpha-alpha的第一阶段一般只用于内部测试。beta-beta的第二阶段已经消除了软件中的大部分不完善之处,但仍可能存在缺陷和漏洞,一般提供给特定的用户群体进行测试。-RC是第三级。此时产品已经相当成熟,只需要在某些地方进一步优化就可以上市发布了。例如:

  2 . 1 . 0-beta 1一般用户不会安装这种。这种可以供内部和测试人员使用。

  依赖包的版本问题

  实例描述~1.2.3主要版本次要版本补丁版本;1.2.3=版本1 . 3 . 0;~1.2主要版本次要版本;1.2.0=版本1.3.0~1主版本;1.0.0=版本2.0.0符号实例版本范围描述1.0.01.0.0锁定版本1.0.0,这是必需的。会匹配最新的大版本依赖包1.2.3,0.2.3=1.2.3 2.0.0,=0.2.3 0.3.0表示安装最新版本的2.x.x(不低于1.2.3,含1.3.0),需要注意的是,如果主版本号为0,则脱字符行为与波浪号相同。这是因为此时处于开发阶段,即使次要版本号发生变化,也可能导致程序不兼容。(主版本)~将匹配最新的次版本依赖包~1.2.3=1.2.3 1.3.0是指安装最新版本的1.2.x(不低于1.2.3),而不是1.3.x,也就是说安装时主版本号和次版本号不会改变。==2.1.0=2.1.0大于等于2.1.0==2.0.0=2.0.0小于等于2.0.0以后安装最新版本*=0.0.0任何版本-1.2.3-2.3.4=1.1

  DevDependencies是开发需要的模块,所以我们可以在开发过程中按需安装,提高我们的开发效率,比如一些知名的第三方库,比如webpack、rollUp、less、babel。不需要在构建环境中安装。

  建议将以下类库安装到devDependencies中:

  单元测试支持(摩卡、柴);语法兼容性(Babel);语法转换(jsx到js,coffeescript到js,typescript到js)程序构造和优化(webpack,gulp,grunt,uglifyjs);Css处理器(postCSS、SCSS、手写笔);代码(eslint);区分安装Dependencies和dependencies?

  1.安装本地依赖包。

  npinstalljQuery命令将在当前目录中创建一个node_modules目录,然后将指定的包下载到这个目录中。

  2.指定安装版本,后跟@版本号。

  如果包名以@开头,则为依赖包(指定、更新、本地、使用、卸载)

  npm安装jquery@3.4.1

  npm安装jquery@=1.1.0 2.2.0

  在npinstalljquery @ latest更新后,依赖项中的版本号也会发生变化。

  3.更新依赖包

  Npm更新jquery4,使用包

  让jquery=require( jquery );script=/node _ modules/jquery/dist/jquery . js //注意路径/script6,卸载依赖包。

  npm卸载jquery范围包

  https://docs.npmjs.com/about-semantic-versioning

  https://github.com/npm/node-semver

  Semantic versioning(语义化版本规则)

  根据上面所说,我们在使用npm init的时候,会被要求填写几项,有些可以留空,有些必须填写。这些必选项是package.json content必须拥有的字段:名称和版本。否则,无法执行安装。

  名称:全部小写,无空格,连字符和下划线版本:按顺序排列的版本号,遵循前面提到的语义版本规则x.x.xpackage.json注意事项

  添加中文注释会导致编译错误。更多关于node的信息,请访问:nodejs教程!以上是对package.json文件细节的深入分析。请多关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: