使用package.json

作者: 竹天亮 | 来源:发表于2016-07-19 10:35 被阅读254次

    最好的方式管理本地安装的npm包是创建一个package.json文件。
    package.json能为你做很多事情:

    1. 它为你的项目依赖的包像文档一样服务
    2. 通过使用semantic versioning rules来管理项目包的版本
    3. 让你的构建可重置,以为很方便的与其他开发者分享。

    需求

    最简单的package.json必须有:

    • "name"
    • 全小写
    • 一个单词,无空格
    • 允许有连接号和下划线
    • "version"
    • x.x.x的格式
    • 安照semver spec

    比如:

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

    创建package.json

    创建package.json运行:

    > npm init
    

    这回有一些的问题来初始化package.json

    --yes 初始标记

    命令行的Q&A不是为所有人的,经常想舒服的使用package.json,你需要更快的方式。
    可以在运行npm init的时候带上 --yes 或者 -y标记创建默认的pacakge.json:

    > npm init --yes
    

    这只会问你一个问题,author .其他的会使用默认值:

    > npm init --yes
    Wrote to /home/ag_dubs/my_package/package.json:
     
    {
      "name": "my_package",
      "version": "1.0.0",
      "main": "index.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "keywords": [],
      "author": "ag_dubs",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/ashleygwilliams/my_package.git"
      },
      "bugs": {
        "url": "https://github.com/ashleygwilliams/my_package/issues"
      },
      "homepage": "https://github.com/ashleygwilliams/my_package"
    }
    
    • name:默认是author名,如果是在git目录,会使用repository的名字
    • version: 总是1.0.0
    • main: 总是** index.js**
    • scripts: 默认创建一个空的test脚本
    • keywords: empty
    • author: 在CLI里提供的名字
    • license: ISC
    • repository: 如果存在,会放当前目录git的信息
    • bugs: 如果存在,会放当前目录git的信息
    • homepage: 如果存在,回访当前目录git的信息

    也可以在命令行里设置一些配置。比如:

    > npm set init.author.email "whombat&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里列出你想要的。可以列出包的两种类型:

    • “dependencies”: 生产环境里你的项目需要的包
    • “devDependencies": 这些包只在开发和测试的时候需要
    手工修改package.json

    可以手工编辑package.json。需要在包对象里创建一个dependencies节点指向一个对象。这个对象会管理使用的包的属性,使用semver表达式指定什么版本适合你的项目。

    如果你有只在本地开发才依赖的包,应该像上面一样的结构创建一个devDependencies.

    比如:下面的项目在生产环境里使用匹配主版本1的任何my_dep包的版本,和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 安装标记

    更方便(和更awesome)的方式添加依赖到package.json是从命令行里做,标记 ** npm install** 命令使用--save 或者 -- save-dev,取决于你的依赖:
    添加一个 package.json的dependencies:
    npm install <pacakge_name> --save
    增加一个 package.json的devDependencies:
    npm install <package_name> --save-dev

    管理依赖版本

    npm 使用Semantic Versioning,或者我们经常提到的,SemVer,管理版本和包的版本的一个范围。

    如果目录里有package.json文件,并且你运行npm install,那么npm会超找在package.json列出的依赖并且下载最近的满足semver rules的版本。

    相关文章

      网友评论

        本文标题:使用package.json

        本文链接:https://www.haomeiwen.com/subject/kdemjttx.html