使用package.json

管理本地安装的npm包的最佳方法是创建一个package.json文件。

一个packagejson文件:

  • 列出项目所依赖的包。
  • 允许使用语义版本控制规则指定项目可以使用的包的版本。
  • 使您的构建具有可重复性,因此更容易与其他开发人员共享。

需求

一个package.json必须:

  • “name”

    不允许大写字母

    不允许空格

    允许使用破折号和下划线

  • “version”

    以x.x.x的形式

    遵循semver规范

For example:

{
"name": "my-awesome-package",
"version": "1.0.0"
}

创建一个package.json

有两种基本方法创建package.json文件。

1. 运行CLI问卷

创建package.json文件与您提供的值,运行:npm init

这将启动一个命令行问卷,最后在您启动命令的目录中创建一个package.json

2. 创建一个默认的package.json

获取默认的package.json,运行npm init -yesnpm init -y

这个方法将生成一个默认package.json,使用从当前目录中提取的信息。

Wrote to /Users/wangkun/Desktop/nodeWork/work2/lesson8-/package.json:

{
"name": "lesson8-1",
"version": "1.0.0",
"description": "",
"main": "index.js",
"dependencies": {
"react": "^16.8.6"
},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
  • name: 当前目录名称

  • version: 版本

  • description: 说明

  • main: 入口文件,总是index.js

  • dependencies:生产依赖

  • devDependencies:开发依赖

  • scripts:脚本,默认情况下创建一个空的测试脚本

  • keywords:关键字

  • author:作者

  • license: 许可

您还可以为init命令设置几个配置选项。一些有用的:

> npm set init.author.email "wombat@npmjs.com"

> npm set init.author.name "ag_dubs"

> npm set init.license "MIT"

注意:

如果package.json中没有描述字段。npm使用README.md或者README的第一行来代替。这个描述帮助人们在搜索npm时找到您的包,因此在package.json中进行自定义描述绝对是有用的,使您的

包更容易找到。

如何自定义package.json问卷

如果您希望创建多个package.json文件,您可能希望自定义init过程中询问的问题,以便这些文件始终包含您期望的关键信息。您可以自定义字段以及所询问的问题。

为此,在主目录~/.npm-init.js中创建一个自定义 .npm-init.js。

一个简单的.npm-init.js可能是这样的:

module.exports = {
customField: 'Custom Field',
otherCustomField: 'This field is really cool'
}

在主目录中使用这个文件运行npm init将输出一个package.json包含下面的这些:

{
customField: 'Custom Field',
otherCustomField: 'This field is really cool'
}

您还可以使用prompt函数自定义问题。

 module.exports = prompt("what's your favorite flavor of ice cream, buddy?", "I LIKE THEM ALL");

要了解更多关于如何创建高级定制的信息,请查看init-package-json文档

指定依赖项

要指定项目所依赖的包,需要列出希望在中package.json文件中使用的包,你可以列出两种包:

“dependencies”:您的应用程序在生产中需要这些包。

“devDependencies”:这些包只用于开发和测试。

手动编辑package.json

您可以手动编辑package.json。您需要在包对象中创建一个名为dependencies的属性,该属性指向一个对象。这个对象将包含您希望使用的包的名称属性。它将指向一个semver表达式,该表达式指

定与您的项目兼容的项目版本。如果您有依赖关系,您只需要在本地开发期间使用,请遵循与上面相同的指示,但要使用名为devDependencies的属性。

例如,下面的项目使用的my_dep包的任何版本与生产中的主要版本1匹配,并且需要my_test_framework包的任何版本与主要版本3匹配,但仅用于开发:

{
"name": "my_package",
"version": "1.0.0",
"dependencies": {
"my_dep": "^1.0.0"
},
"devDependencies" : {
"my_test_framework": "^3.1.0"
}
}

--save和--save-dev安装标志

向package.json中添加依赖项的更简单(也更棒)的方法,从命令行开始执行,使用--save或--save-dev标记npm install命令,这取决于您希望如何使用该依赖项。

向package.json文件中的dependencies:npm install <package_name> --save

向package.json文件中的devDependencies:npm install <package_name> --save-dev

管理依赖版本

npm使用语义版本控制,或者正如我们经常提到的SemVer,来管理包的版本和版本范围。

如果你有一个package.json文件在你的目录中并且运行npm install,npm将查看该文件中dependencies列出的,并使用语义版本控制下载最新版本。

更多内容

package.json

【npm】伙计,给我来一杯package.json!不加糖

npm学习(五)之使用package.json的更多相关文章

  1. 关于npm 淘宝镜像 以及package.json里包的更新

    1.淘宝镜像的设置 npm config set registry https://registry.npm.taobao.org npm config set disturl https://npm ...

  2. Nodejs 包与 npm第三方模块安装和 package.json 以及 cnpm

    包与 NPM 1. 包 Nodejs 中除了它自己提供的核心模块外,可以自定义模块,也可以使用第三方的模块.Nodejs 中第三方模块由包组成,可以通过包来对一组具有相互依 赖关系的模块进行统一管理. ...

  3. NPM安装报错:WARN PACKAGE.JSON, NO REPOSITORY FIELDS

    今天在安装npm包时遇到了这个错误,出现如下提示: npm WARN package.json xxx@0.0.0 No repository field. npm WARN package.json ...

  4. [NPM] Set default values for package.json using npm set

    Npm by default uses global values when initializing a new package.json file. Learn how to set your o ...

  5. Python3 学习第十三弹: 模块学习五之pickle与json

    对于python来说,这两个模块是十分实用的两个模块,以一种简单的方法用于储存数据实例. pickle模块 提供用来储存Python各种数据序列化存储 # 原来的cPickle已经在python3中与 ...

  6. 在package.json中配置Script执行npm run tslint报错问题

    今天在学习tslint的时候,按照git clone下angular2-webpack-starter的代码执行npm run lint时,虽然代码进行了检测,但检测完成后npm始终报错, //pac ...

  7. node学习: package.json

    package.json 定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称.版本.许可证等元数据) 1.创建 package.json npm init npm init –yes 2.p ...

  8. npm安装package.json中的模块依赖

    npm 一键安装 package.json里的依赖时有2种情况: 1.package.json不存在时 运行命令: npm init可自动创建package.json文件 2.package.json ...

  9. 对package.json的理解和学习

    一.初步理解 1. npm安装package.json时  直接转到当前项目目录下用命令npm install 或npm install --save-dev安装即可,自动将package.json中 ...

随机推荐

  1. mysql 链接数满了的错误 ERROR 1040 (HY000): Too many connections

    mysql 链接数满了的错误 ERROR 1040 (HY000): Too many connections 第一种处理方式: ./mysql -u root -p 登录成功后执行以下语句查询当前的 ...

  2. PHP 最完美调用百度翻译接口代码示例 (原)

    php调用百度翻译最新接口代码 问       题:写的过程遇到了一个问题,url拼接好的原翻译内容,appid,sign的地址直接输出到浏览器可以打开看到翻译后的返回值,但是各种curl,file_ ...

  3. echarts_04

    通过ajax加载本地文件: 1.http://www.cnblogs.com/qjqcs/archive/2016/09/07/5850282.html 2.http://blog.csdn.net/ ...

  4. echarts_02

    1. 如果数据加载时间较长,一个空的坐标轴放在画布上也会让用户觉得是不是产生 bug 了,因此需要一个 loading 的动画来提示用户数据正在加载. ECharts 默认有提供了一个简单的加载动画. ...

  5. div随窗口变化设置高度

    window.onscroll = function () { sc(); }; window.onresize = function () { sc(); }; window.onload = fu ...

  6. spark MLlib 概念 1:相关系数( PPMCC or PCC or Pearson's r皮尔森相关系数) and Spearman's correlation(史匹曼等级相关系数)

    皮尔森相关系数定义: 协方差与标准差乘积的商. Pearson's correlation coefficient when applied to a population is commonly r ...

  7. windows+VS+Openjdk12 搭建debug环境

    openjdk12 下载地址: http://jdk.java.net/archive/ https://download.java.net/java/GA/jdk12/33/GPL/openjdk- ...

  8. puppeteer - 操作支付宝报“操作频繁”错误的思考

    我这里想要实现的是通过转账到支付宝的方式判断一个手机号是否注册过支付宝.但查询收款人的网络请求很复杂分析不出来,使用 puppteer 也是没有解决 "操作频繁" 的问题(应该还有 ...

  9. BurpSuite(二) proxy 模块

      Proxy代理模块作为BurpSuite的核心功能,拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流. Burp 代理允许你 ...

  10. 子系统 安装vsftpd

    1.安装命令 sudo apt install vsftpd 2.为FTP添加用户,使用sudo useradd -m sunftp命令添加一个sunftp的用户 3. 授权文件夹  chmod 77 ...