阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      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将查看该文件中列出的依赖项,并使用语义版本控制下载最新版本。

      目录
      目录