跨平台

npm了解

2020-01-02  本文已影响0人  平安喜乐698
目录
   1. 简介
   2. 常用命令
   3. package.json (模块的描述符文件)
   4. 版本号说明

1. 简介

npm (Node Package Manager)

1.通过npm可以安装、共享、分发代码 , 管理项目依赖关系及版本。
2.JavaScript世界的包管理工具(并且是Node.js平台的默认包管理工具)。
3.世界上最大的软件注册表,每星期大约有30亿次的下载量,包含超过600000个包(package代码模块)。
4.国内npm的访问速度很慢,可以使用cnpm来代替npm

npm 由三个独立的部分组成:
  1. 网站
    开发者查找包(package)、设置参数以及管理 npm 
  2. 注册表(registry)
    一个巨大的数据库,保存了每个包(package)的信息
  3. 命令行工具 (CLI)
    通过命令行或终端运行。开发者可通过 CLI 与 npm 打交道
安装npm
  brew install node
升级npm
  brew upgrade node
卸载npm
  brew uninstall  node
重装npm
  brew reinstall node

2. 常用命令

常用命令 说明
npm -v 当前版本(是否安装)
npm install -g 升级版本
npm search module_name 搜索指定模块
npm install module_name 本地方式安装指定模块。安装好之后,在 ./node_modules 下(运行 npm 命令时所在的目录)。项目中使用var hello = require('module_name'); 无需指定第三方包路径。终端第一行输出了模块的版本号及安装位置。
npm install module_name -g 全局方式安装指定模块。安装好之后,在 /usr/local 下或 node 的安装目录下。可以直接在命令行里使用。
npm uninstall module_name 从项目中移除已安装的模块
npm update module_name 更新指定的已安装模块的版本(本地)
npm update module_name -g 更新指定的已安装模块的版本(全局)
npm list 列出项目中已安装的所有模块(本地)
npm list -g 列出系统中全局安装的所有模块(全局)
npm list module_name 指定模块的版本号
npm init 创建模块(运行构建新项目的向导)
npm adduser username 注册用户(在npmjs.org创建一个账户)
npm publish 发布init创建的模块到npmjs.org,要发布模块必须先有账户
npm unpublish <package>@<version> 撤销发布的init创建的模块
npm whoami 显示你在npmjs.org上的账户详细信息
npm install module_name –-save 在项目中安装一个模块,并把此模块添加到项目配置文件package.json中,作为项目依赖
npm install module_name –-save-dev 在项目中安装一个模块,并把此模块添加到项目配置文件package.json中,作为项目开发依赖(devDependency)
npm remove module_name 从项目中移除已安装的模块
npm remove -g module_name 从系统的全局安装中移除已安装的模块
npm remove module_name –save 从项目中移除已安装的模块,并从配置依赖中移除依赖关系
npm remove module_name –save-dev 从项目中移除已安装的模块,并从配置依赖中移除开发依赖(devDependency)关系
1.
错误:npm err! Error: connect ECONNREFUSED 127.0.0.1:8087 
解决:npm config set proxy null

3. package.json (模块的描述符文件)

位于模块的目录下,用于定义包的属性。

举例

{
    "name": "test-project",
    "version": "1.0.0",
    "description": "test project",
    "homepage": "https://www.baidu.com/",
    "author": "helloWorld",
    "contributors": [
      {
        "name": "Hello",
        "email": "hello@sina.com"
      },
    ],
    "dependencies": {
      "accepts": "~1.2.12",
      "array-flatten": "1.1.1",
    },
    "repository": {
      "type": "git",
      "url": "git+https://github.com/strongloop/express.git"
    },
    "main": "app.js",
    "keywords": [
      "express",
      "framework",
    ],
    "scripts": {
        "test": "node test.js",
        "start": "node app.js",
        "clean": "rm -rf node_modules"
    },
    "private": true,
    "license": "MIT",
    "devDependencies": {
      "after": "0.8.1",
    },
}
字段 说明
name 包名
version 包的版本号。
description 包的描述。
homepage 包的官网 url 。
author 包的作者姓名。
contributors 包的其他贡献者姓名。
dependencies 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。
repository 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
main main 字段指定了程序的主入口文件,require('moduleName') 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。
keywords 关键字
scripts 定义了三个任务脚本:启动start、测试test、清理clean。要执行脚本,分别使用命令: npm run start 、 npm run test 、npm run clean 。script会按照一定顺序寻找命令对应位置,比如本地的node_modules/.bin路径。

4. 版本号说明

版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号。当代码变更时,版本号按以下原则更新。
    如果只是修复bug,需要更新Z位。
    如果是新增了功能,但是向下兼容,需要更新Y位。
    如果有大变动,向下不兼容,需要更新X位。

在申明第三方包依赖时,除了可依赖于一个固定版本号外,还可依赖于某个范围的版本号。例如"argv": "0.0.x"表示依赖于0.0.x系列的最新版argv。
上一篇 下一篇

猜你喜欢

热点阅读