美文网首页IT
05.使用package.json

05.使用package.json

作者: 幽暗金 | 来源:发表于2017-03-10 08:39 被阅读99次

    创建package.json是用来管理本地包的最好的方法。

    一个package.json文件可以提供很多有用的事情:
    1.它描述了你的项目依赖一些包
    2.它指定了包的版本范围
    3.它使你的项目分享给其他开发者更容易

    要求

    最小限度的要求:

    • "name"

      • 全部小写
      • 一个单词,不能有空格
      • 允许破折号和下划线
    • "version"

    例子

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

    创建一个package.json

    npm init
    

    这将根据你的输入在当前目录创建一个package.json文件。

    标识--yes

    npm init --yes
    

    这将根据默认模板快速创建一个package.json文件。

    这将写到当前目录的package.json

    {
      "name": "my_package",
      "description": "",
      "version": "1.0.0",
      "main": "index.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "keywords": [],
      "author": "",
      "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:默认是作者名,如果在git目录则是目录名。
    • description:空
    • version:1.0.0
    • main:index.js
    • scripts:创建一个空的测试脚本
    • keywords:空的
    • author:空的
    • license:ISC
    • respository:和当前所在目录有关
    • bugs:和当前所在目录有关
    • home:和当前所在目录有关

    你可以通过以下命令配置一些默认信息

    npm set init.author.email "wombat@npmjs.com"
    npm set init.author.name "ag_dubs"
    npm set init.license "MIT"
    

    note:
    如果package.json中没有description字段,NPM使用readme.md的第一行或readme作为description。description有助于人们找到你的NPM包;一个自定义的描述可以让你的包更容易被发现。

    定制init

    同样你可以自己定制一些初始化信息,在初始化的时候这些信息会自动放到package.json中。你需要把额外的初始化信息放到 .npm-init.js 中,这个文件需要在根目录中创建。

    如果是windows系统,则放在如下目录

    X:\Users\用户名\.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'
    }
    

    Customizing the questions is also possible, by using the prompt function.

    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 作为开发时的依赖。你可以如下配置:

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

    --save 和 --save-dev

    使用命令为你的项目添加依赖是更简单方便的。你可以使用 npm install命令下载包到本地。运用标志位可以自动添加依赖项到package.json文件中。

    添加到package.json的dependencies:

    npm install <package_name> --save
    

    添加到package.json的devDependencies:

    npm install <package_name> --save-dev
    

    管理依赖版本

    npm使用Semantic Versioning(我们通常简称为SemVer)来管理包的版本范围。

    如果当前目录存在package.json文件,使用npm install命令,npm将会根据 semver rules 下载最新的依赖包。

    你可以通过 Getting Started "Semver" page学习semantic versioning。

    官方原文

    相关文章

      网友评论

        本文标题:05.使用package.json

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