ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

package.json

2022-07-19 16:35:47  阅读:202  来源: 互联网

标签:npm name package -- cross dev json version


定义:

package.json文件跟踪依赖关系和元数据,是配置和描述如何与程序交互和运行的中心。

它包含名称、描述和版本之类的信息,以及运行、开发以及有选择地将项目发布到 NPM 所需的信息。

示例:

{
  "name": "my-project",
  "version": "1.5.0",
  "description": "Express server project using compression",//描述,搜索的时候也有用
  "main": "src/index.js",
  "scripts": {
    "start": "node index.js",
    "dev": "nodemon",
    "lint": "eslint **/*.js"
  },
  "dependencies": {
    "express": "^4.16.4",
    "compression": "~1.7.4"
  },
  "devDependencies": {
    "eslint": "^5.16.0",
    "nodemon": "^1.18.11"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/osiolabs/example.git"
  },
  "author": "Jon Church",
  "contributors": [
    {
      "name": "Amber Matz",
      "email": "example@example.com",
      "url": "https://www.osiolabs.com/#team"
    }
  ],
  "keywords": [//关键字,一个字符串数组,方便别人搜索到本模块
    "server",
    "osiolabs",
    "express",
    "compression"
  ]
}

字段详解

name

package.json 中最重要的属性是 name 和 version 两个属性,是npm 模块的唯一标识。

name是 package(包)的名称。名称的第一部分(如@scope/是可选的,用作名称空间)。通过搜索name来安装使用

{
"name": "@scope/name"
}

version

version是 package(包)的版本

除非它是一个工作空间(workspaces)-其版本必须与指定的范围相匹配,才能选择该工作空间作为解决方案的候选对象。

"version":“x.y.z”
修复 bug,小改动,增加 z
增加了新特性,但仍能向后兼容,增加 y
有很大的改动,无法向后兼容,增加 x

homepage

包的主页地址。

bugs

包的bug跟踪主页地址。

license

包的开源协议名称。

author

包的作者。

contributors, maintainers

包的贡献者,是一个数组。

browserslist

指定该模板供浏览器使用的版本。

  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },

repository

包的仓库地址。

  "repository": {
    "type": "git",
    "url": "git@gitlab.***.cn:****.git"
  },

scripts

通过设置这个可以使NPM调用一些命令脚本,封装一些功能。
"scripts": {
  "dev": "cross-env NODE_ENV=development webpack-dev-server --progress --colors --devtool cheap-module-eval-source-map --hot --inline",
  "build": "cross-env NODE_ENV=production webpack --progress --colors --devtool cheap-module-source-map",
  "build:dll": "webpack --config webpack.dll.config.js"
}

NPM 脚本的原理

npm 脚本的原理非常简单。每当执行 npm run,就会自动新建一个 Shell,在这个 Shell 里面执行指定的脚本命令。

比较特别的是,npm run 新建的这个 Shell,会将当前目录的 node_modules/.bin 子目录加入 PATH 变量,执行结束后,再将 PATH 变量恢复原样。

这意味着,当前目录的 node_modules/.bin 子目录里面的所有脚本,都可以直接用脚本名调用,而不必加上路径。比如,当前项目的依赖里面有 Mocha,只要直接写 mocha test 就可以了

"test": "mocha test"

引申  cross-env:

是运行跨平台设置和使用环境变量的脚本。

使用 NODE_ENV = production来设置环境变量的时候,大多数windows命令会提示将会阻塞或者异常报错。

cross-env能够提供一个设置环境变量的scripts,这样我们就能够以unix方式在windows上设置环境变量。

安装

//npm 安装:
npm install cross-env --save-dev
//yarn安装:
yarn add cross-env --dev

 

dependencies

指定依赖的其它包,这些依赖是指包发布后正常执行时所需要的,也就是线上需要的包。使用下面的命令来安装:

npm install --save packageName   --save可简写为 -S

devDependencies

这些依赖只有在开发时候才需要。使用下面的命令来安装:

npm install --save-dev packageName  --save-dev可简写为-D

 

标签:npm,name,package,--,cross,dev,json,version
来源: https://www.cnblogs.com/liangtao999/p/16494551.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有