美文网首页
Nodejs - package.json

Nodejs - package.json

作者: Lisa_Guo | 来源:发表于2019-12-06 11:18 被阅读0次

    在Node.js中,模块是一个库或框架,也是一个Node.js项目。Node.js项目遵循模块化的架构,当我们创建了一个Node.js项目,意味着创建了一个模块,这个模块的描述文件,被称为package.json

    package.json包含了所在项目的配置信息,如:版本、描述、作者、运行依赖、打包依赖、运行脚本、环境说明等等。npm init 可以自动生产层基础配置

    Scripts

    可通过npm run执行的脚本命令,如npm run start, npm run test。脚本命令为node命令或shell命令

    "scripts": {
        "start": "node index.js",
        "test": "echo no test!"
    }
    

    dependencies, devDependencies

    dependencies 定义项目运行时依赖的模块(由别的模块引用时需要与当前模块同时自动安装的三方模块),devDependencies定义项目开发阶段所需要的模块

    {
      "dependencies": {
        "browserify": "~13.0.0",
        "karma-browserify": "~5.0.1"
      }
    }
    
    • 指定版本:比如1.2.2,遵循“大版本.次要版本.小版本”的格式规定,安装时只安装指定版本。
    • 波浪号(tilde)+指定版本:比如~1.2.2,表示安装1.2.x的最新版本(不低于1.2.2),但是不安装1.3.x,也就是说安装时不改变大版本号和次要版本号。
    • 插入号(caret)+指定版本:比如ˆ1.2.2,表示安装1.x.x的最新版本(不低于1.2.2),但是不安装2.x.x,也就是说安装时不改变大版本号。需要注意的是,如果大版本号为0,则插入号的行为与波浪号相同,这是因为此时处于开发阶段,即使是次要版本号变动,也可能带来程序的不兼容。
    • latest:安装最新版本。
    npm install express --save
    npm install express --save-dev
    

    --save 安装时自动将此模块写入dependencies--save-dev 表示将模块写入devDependencies

    main

    main字段指定了加载的入口文件(commonjs方式),require('moduleName')就会加载这个文件。这个字段的默认值是模块根目录下面的index.js

    "main": "lib/mand-mobile.umd.js",
    

    module

    模块以es6 module方式被引入时的入口文件

    "module": "lib/mand-mobile.esm.js",
    

    打包工具加载模块的时候,如果模块中存在 module 字段,会优先使用,如果没找到对应的文件,则会使用 main 字段,并按照 CommonJS 规范打包。

    files

    定义一个目录数组,该模块被安装时,files指定的目录集合下的文件也会被同时安装下载

     "files": [
        "lib",
        "lib-vw",
        "components",
        "types",
        "assets"
      ],
    

    可以在模块的根目录或子目录下提供一个.npmignore文件来忽略项目包含文件,即使这些文件被包含在files字段中。

    style

    样式文件所在位置

    "style": "lib/mand-mobile.css",
    

    bin

    用于定义一个命令行工具

    "bin": {
      "custom": "./bin/custom-init.js"
    }
    

    指定一个命令custom,该命令对应的执行脚本为./bin/custom-init.js
    可以在命令行工具运行:

    $ custom
    

    其他配置

    {
      "name": "mand-mobile",   // 本模块名称,被其他模块引用时使用
      "version": "1.6.8",   // 版本号
      "description": "A Vue.js 2.0 Mobile UI Toolkit",  // 本模块描述
      "homepage": "https://github.com/didi/mand-mobile",  // 官网
      "repository": {  // 代码仓库地址
        "type": "git",
        "url": "git+https://github.com/didi/mand-mobile.git"
      },
      "bugs": {  // bug提交地址
        "url": "https://github.com/didi/mand-mobile/issues"
      },
      "engines": {  // 该模块运行的平台,比如 Node 的某个版本或者浏览器。
        "node": ">= 8.0.0",
        "npm": ">= 5.0.0"
      },
      "browserslist": [ // 指定该模板供浏览器使用的版本
        "iOS >= 8",
        "Android > 4.0"
      ]
    }
    

    参考文章
    https://segmentfault.com/a/1190000014286439

    相关文章

      网友评论

          本文标题:Nodejs - package.json

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