npm package.json 的用法

🌙
手机阅读
本文目录结构

作用

如果你想管理本地安装的npm软件包,或者和别人一起分享等

最佳方法是创建一个 package.json文件。

功能

一个package.json文件功能:

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

要求

一个package.json必须具备:

“name”

  • 全部小写
  • 一个词,没有空格
  • 允许使用破折号(-)和下划线(_)

“version”

例如

{
  "name": "axihe-package",
  "version": "1.0.0"
}

创建一个 package.json

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

1.运行CLI自定义

要使用package.json提供的值创建一个,请运行:

> npm init

这将启动一个命令行调查表,该调查表将以package.json在您启动命令的目录中创建结束。

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

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

> npm init --yes

https://a.axihe.com/edu/npm/axihe-package-01.png

此方法将package.json使用从当前目录提取的信息来生成默认值。

如果是git项目,会是下面这种的;

> npm init --yes
Wrote to /home/anbang/axihe-test/package.json:

{
  "name": "axihe-test",
  "description": "",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/axihe/axihe-test.git"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/axihe/axihe-test/issues"
  },
  "homepage": "https://github.com/axihe/axihe-test"
}
  • name:当前目录名称
  • version:总是 1.0.0
  • description:自述文件中的信息,或者为空字符串 ""
  • main:总是 index.js
  • scripts:默认情况下会创建一个空test脚本
  • keywords:空
  • author:空
  • license: ISC
  • bugs:当前目录中的信息(如果存在)
  • homepage:当前目录中的信息(如果存在)

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

> npm set init.author.email "79228807@qq.com"
> npm set init.author.name "anbang"
> 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可能看起来像这样:

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的文档。

https://github.com/npm/init-package-json

指定依赖项

要指定项目所依赖的软件包,您需要列出要在package.json文件中使用的软件包。

您可以列出2种类型的软件包:

  • “dependencies”:您的应用程序在生产中需要这些软件包。
  • “devDependencies”:这些软件包仅在开发和测试时需要。

手动编辑 package.json

您可以手动编辑package.json。

您需要在包对象中创建一个dependencies指向该对象的属性。该对象将包含用于命名您要使用的软件包的属性。

它将指向一个semver表达式,该表达式指定与您的项目兼容的该项目的版本。

如果您有依赖项,则只需要在本地开发期间使用,请按照上述相同的说明进行操作,但要使用称为的属性 devDependencies

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

{
  "name": "axihe-test",
  "version": "1.0.0",
  "dependencies": {
    "my_dep": "^1.0.0"
  },
  "devDependencies" : {
    "my_test_framework": "^3.1.0"
  }
}

--save--save-dev 安装

向依赖项添加依赖项的更简单(更棒)方法package.json是从命令行执行此操作,npm install并使用--save或 标记命令--save-dev,具体取决于您希望如何使用该依赖项。

要将条目添加到您package.json的中dependencies

npm install <package_name> --save

要将条目添加到您package.json的中devDependencies

npm install <package_name> --save-dev

管理依赖版本

npm使用语义版本控制(或我们经常提到的语义版本控制)来管理软件包的版本和版本范围。

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

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了