锋盈数科-知识库 Logo
首页
软件开发
计算机基础
Hello Halo
新手必读
关于本知识库
登录 →
锋盈数科-知识库 Logo
首页 软件开发 计算机基础 Hello Halo 新手必读 关于本知识库
登录
  1. 首页
  2. 软件开发
  3. npm命令汇总

npm命令汇总

0
  • 软件开发
  • 发布于 2024-08-19
  • 10 次阅读
黄健
黄健

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。


乐游原上清秋节,咸阳古道音尘绝。
音尘绝,西风残照,汉家陵阙。
------《忆秦娥·箫声咽》



文章目录

  • npm命令汇总
    • 1. npm install 安装模块
      • 1.1 语法
      • 1.2 举例
      • 1.3 参数
      • 1.4 参数举例
        • 1.4.1 -S
        • 1.4.2 -D
        • 1.4.3 -O
        • 1.4.4 -E
        • 1.4.5 本地和全局安装
    • 2. npm uninstall 卸载模块
      • 2.1 语法
      • 2.2 举例
    • 3. npm ls 查看安装的模块
      • 3.1 语法
      • 3.2 举例
    • 4. npm outdated 检查模块是否已经过时
    • 5. npm update 更新模块
      • 5.1 语法
    • 6. npm help 查看某条命令的详细帮助
      • 6.1 语法
      • 6.2 举例
    • 7. npm init 初始化项目
    • 8. npm root 查看包的安装路径
    • 9. npm config 管理npm的配置路径
      • 9.1 语法
      • 9.2 举例
    • 10. npm cache 管理模块的缓存
      • 10.1 语法
      • 10.2 举例
    • 11. npm start 启动模块
      • 11.1 语法
    • 12. npm stop 停止模块
    • 13. npm restart 重新启动模块
    • 14. npm test 测试模块
    • 15. npm version 查看模块版本
    • 16. npm view 查看模块的注册信息
      • 16.1 语法
      • 16.2 举例
    • 17. npm publish 发布模块
    • 18. npm access 为发布的包设置访问级别
    • 19. npm package.json的语法
      • 19.1 默认值
      • 19.2 name
      • 19.3 version
      • 19.4 description
      • 19.5 keywords
      • 19.6 bugs
      • 19.7 license
      • 19.8 repository
      • 19.9 scripts
      • 19.10 config
      • 19.11 dependencies
      • 19.12 devDependencies


node的下载、安装、配置和使用(node.js下载安装和配置、npm命令汇总、cnpm的使用)


npm命令汇总

1. npm install 安装模块

1.1 语法

不加任何参数,会根据package.json文件中列出的所有项下载

npm install

注:若没有package.json文件则会报错
加路径和模块名的语法

npm install [<@scope>/] <name>
npm install [<@scope>/] <name>@<tag>
npm install [<@scope>/] <name>@<version>
npm install [<@scope>/] <name>@<version range>
npm install <tarball file>
npm install <tarball url>
npm install <folder>

参数

alias:npm i
common options:[-S|--save|-D|--save-dev|-O|--save-optional] [-E|--save-exact] [--dry-run]

1.2 举例

安装包时,默认会安装最新的版本

npm install gulp

也可以指定版本安装

npm install gulp@3.9.1

安装后将信息保持到项目的package.json文件中

1.3 参数

install 参数与描述

参数描述
-S或--save安装包信息将加入到dependencies(生产阶段的依赖)
-D或--sava-dev安装信息将加入到devDependencies(开发阶段的依赖),所以开发阶段一般使用这个
-O或--save-optional安装包信息将加入到optionalDependencies(可选阶段的依赖)
-E或--save-exact精准安装指定模块版本

项目对模块的依赖可以用一下三种方式表示,当前假设项目版本号为1.1.0
兼容模块新发布的补丁版本:~1.1.0、1.1.x、1.1
兼容模块新发布的小版本、补丁版本:^1.1.0、1.x、1
兼容模块新发布的大版本、小版本、补丁版本:*、x

1.4 参数举例

以下以gulp举例

1.4.1 -S

将gulp安装包信息加入dependencies生产阶段的依赖中

npm install gulp --save

或

npm install gulp -S

然后会在package.json文件中的dependencies字段中看到

"dependencies":{
   
	"gulp":"^3.9.1"
}
1.4.2 -D

将gulp安装包信息加入devDependencies开发阶段的依赖中

npm install gulp --save-dev

或

npm install gulp -D

然后会在package.json文件中的devDependencies字段中看到

"devDependencies":{
   
	"gulp":"^3.9.1"
}
1.4.3 -O

将gulp安装包信息加入optionalDependencies生产阶段的依赖中

npm install gulp --save-optional

或

npm install gulp -O

然后会在package.json文件中的dependencies字段中看到

"dependencies":{
   
	"gulp":"^3.9.1"
}
1.4.4 -E

将gulp安装包信息加入dependencies生产阶段的依赖中

npm install gulp --save-exact

或

npm install gulp -E

输入命令

npm install gulp -ES

dependencies字段的gulp的版本号前的^符号消失

然后会在package.json文件中的dependencies字段中看到

"dependencies":{
   
	"gulp":"3.9.1"
}

模块依赖被写入package.json文件后,
其他人使用npm install可根据package.json中dependencies配置安装所有依赖包

1.4.5 本地和全局安装

本地安装gulp

npm install gulp

全局安装

npm install gulp -g

-g或--global都可以

2. npm uninstall 卸载模块

2.1 语法

卸载模块的语法

npm uninstall [<@scope>/]<pkg>[@<version>]...[-S|--save|-D|--save-dev|-O|--save-optional]

aliases:remove,rm,r,un,unlink

2.2 举例

卸载开发版本的模块

npm uninstall gulp --save-dev

3. npm ls 查看安装的模块

3.1 语法

已安装的模块的查看命令

npm ls [[<@scope>/]<pkg>...]

aliases:list,la,ll

3.2 举例

查看全局安装的模块和依赖

npm ls -g

4. npm outdated 检查模块是否已经过时

语法

npm outdated [[<@scope>/]<pkg>...]

该命令会列出所有已经过时的包,可以及时进行更新

5. npm update 更新模块

5.1 语法

更新模块语法

npm update [-g] [<pkg>...]

6. npm help 查看某条命令的详细帮助

6.1 语法

帮助命令语法

npm help <term> [<terms..>]

6.2 举例

查看install命令的所有帮助选项信息

npm help install

该命令的执行逻辑是,系统在默认的浏览器或者默认的编辑器中打开本地nodejs安装包的文件/nodejs/node_modules/npm/html/doc/cli/npm-install.html

7. npm init 初始化项目

执行该命令会在项目中创建一个package.json文件
安装包信息可保持到项目的package.json文件中,以便后后续的其他项目开发或其他成员合作使用,可根据package.json下载项目依赖

语法

npm init [-f|--force|-y|--yes]

8. npm root 查看包的安装路径

查看包的安装路径的命令如下

npm root [-g]

该命令会输出node_modules的路径

9. npm config 管理npm的配置路径

使用config参数管理npm的配置路径

9.1 语法

管理npm配置路径的语法

npm config set <key> <value> [-g|--global]
npm config get <key>
npm config delete <key>
npm config list
npm config edit
npm get <key>
npm set <key> <value> [-g|--global]

9.2 举例

关于config参数用的最多的是代理的设置,解决npm安装模块失败的问题
如公司内网由于防火墙的原因无法完成各个模块的安装,此时设置代理可以解决问题

npm config set proxy=http://dev-proxy.oa.com:8080

如国内网络环境,某ip地址被墙隔开了,国内好心人搭建镜像地址,此时设置镜像地址可用

npm config set registry="http://r.cnpmjs.org"

也可临时配置镜像地址,如配置淘宝镜像,命令如下

npm install -g cnpm --registry=https://registry.npm.taobao.org

10. npm cache 管理模块的缓存

cache参数用来管理模块的缓存

10.1 语法

管理模块的缓存的语法

npm cache add <tarball file>
npm cache add <folder>
npm cache add <name>@<version>
npm cache ls [<path>]
npm cache clean [<path>]

10.2 举例

常用命令就是清除npm本地缓存

npm cache clean

11. npm start 启动模块

启动模块

11.1 语法

启动模块的语法

npm start [-- <args>]

该命令卸载package.json文件的scripts的start字段中,可自定义命令来配置一个服务器环境和安装一系列的必要程序
如

"scripts":{
   
    "start":"gulp-ws"
}

此时在cmd中输入npm start命令相当于执行gulpfile.js文件自定义的watch和server命令

如果package.json文件没有设置start,则将直接启动node server.js

12. npm stop 停止模块

语法

npm stop [-- <args>]

13. npm restart 重新启动模块

语法

npm restart [-- <args>]

14. npm test 测试模块

语法

npm test [-- <args>]
npm tst [-- <args>]

该命令卸载package.json文件scripts的test字段中,可以自定义该命令来执行一些操作
如

"scripts":{
   
    "test":"gulp release"
}

此时在cmd中输入npm test命令相当于执行gulpfile.js文件自定义的release命令

15. npm version 查看模块版本

语法

npm version [<newversion>|major|minor|patch|premajor|preminor|prepatch|prerelease|from-git]

npm [-v|--version] to print npm version
npm view <pkg> version to view a package's published version
npm ls to inspect current package/dependecy versions

查看模块的版本

npm version

16. npm view 查看模块的注册信息

16.1 语法

查看模块注册信息的语法

npm view [<@scope>/] <name> [@<version>] [<field> [.<subfield>]...]

aliases:info,show,v

16.2 举例

查看模块的依赖关系

npm view gulp dependencies

查看模块的源文件地址

npm view gulp repository.url

查看模块的贡献者,包含邮箱地址

npm view npm contributors

17. npm publish 发布模块

语法

npm publish [<tarball>|<folder>] [--tag <tag>] [--access <public|restricted>]

Publishes . if no argument supplied
Sets tag latest if no --tag specified

18. npm access 为发布的包设置访问级别

语法

npm access public [<package>]
npm access restricted [<package>]
npm access grant <read-only|read-write> <scope:team> [<package>]
npm access revoke <scope:team> [<package>]
npm access ls-packages [<user>|<scope>|<scope:team>]
npm access ls-collaborators [<package> [<user>]]
npm access edit [<package>]

19. npm package.json的语法

英文文档原文地址https://docs.npmjs.com/files/package.json

19.1 默认值

npm会根据包内容设置一些默认值
举例
1

"scripts":{
   "start":"node server.js"}

如果包的根目录有server.js文件,npm会默认将start命令设置为node server.js

2

"scripts":{
   "preinstall":"node-waf clean || true; node-waf configure build"}

如果包的根目录有wscript文件,npm会默认将preinstall命令用node-waf进行编译
3

"scripts":{
   "preinstall":"node-gyp rebuild"}

如果包的根目录有binding.gyp文件,npm会默认将preinstall命令用node-gyp进行编译
4

"contributors":[...]

如果包的根目录有AUTHORS文件,npm会默认逐行按Name (url)格式处理,邮箱和url是可选的,#号和空格开头的行会被忽略

19.2 name

在package.json中最终要的是name和vesion字段,这俩是必须的,如果没有则无法install
name和version一起组成的标识在json中是唯一的,改变包应该同时改变version

注意:

  • name是名字
  • node和js不能包含在名字中,因为写了package.json就会被定为js,不过可以用engine字段指定引擎
  • 这个name会作为在URL的一部分、命令行的参数或者文件夹的名字,任何non-url-safe的字符都是不能用的
  • 这个名字可能会作为参数被传入require(),所以他应该比较短,但要见名知意
  • 起这个名字的时候需要去npm registry查看一下这个名字是否已经被使用,网站http://registry.npmjs.org/

19.3 version

version必须能被node-semver解析,它被包在npm的依赖中,如果要自己用,可执行npm install semver

19.4 description

描述,存放简介、字符串等内容,方便在npm search中搜索

19.5 keywords

关键字,存数组、字符串,同样是为了在npm search中搜索

19.6 bugs

项目的提交问题的url和(或)邮件地址

{
   
    "url":"http://github.com/owner/project/issues",
    "email":"project@hostname.com"
}

19.7 license

指定一个许可证,定义使用的权利和限制
如,用一个像BSD或者MIT这样的通用许可证,只需要指定一个许可证的名字

{
   "license":"BSD"}

如果有更复杂的许可条件,或像提供更多的细节,可以如下

"license":[
    {
   
        "type":"Mylicense",
        "url":"http://github.com/owner/project/path/to/license"
    }
]

19.8 repository

指定代码存放的位置,如git仓库在github上,那么npm docs命令就能找到
如下

"repository":{
   
    "type":"git",
    "url":"http://github.com/isaacs/npm.git"
}
"repository":{
   
    "type":"svn",
    "url":"http://v8.googlecode.com/svn/trunk/"
}

URL应该是公开的,能直接被未经过修改的版本控制程序处理的url,不应该是一个html项目页面,因为他是给计算机看的

19.9 scripts

scripts是一个由脚本命令组成的hash对象,他们在包不同的声明周期中被执行
key是生命周期事件,value是要运行的命令
参考上面的npm start、npm test命令

19.10 config

config hash可以用来配置用于包脚本中的跨版本参数,在实例中,如果一个包有下面的配置

{
   
    "name":"foo",
    "config":{
   "port":"8080"}
}

然后有一个start命令引用了npm_package_config_port环境变量
用户可以通过npm config set foo:port 8089来重写它

19.11 dependencies

依赖是给一组包名指定版本范围的一个hash,这个版本范围是一个或多个空格分隔的字符串组
依赖还可以用tarball或者git URL表示
不要将测试或者过渡性的依赖放在dependencies的hash中
写法和含义

参数含义
version必须完全和version一致
>version必须比version大
>=version大于等于version版本
<=version小于等于version版本
<version必须比version小
~version大约一样
1.2.x1.2.0,1.2.1,...1.2.9等,不包括1.3.0
http://...见下文"依赖URL"
*所有
""空,同*一样
version1-version2同>=version1 <=version2
range1
git...见下文'依赖Git URL'
user/repo见下文'GitHub URLs'

比如下面都是合法的

{
   
    "dependencies":{
   
        "foo":"1.0.0-2.9999.9999",
        "bbb":">=1.0.2<2.1.2",
        "bba":">1.0.2<=2.3.4",
        "bbc":"2.0.1",
        "def":"<1.0.0||>=2.3.1<2.4.5||>=3.0.0",
        "asd":"http://asdf.com/asdf.tar.gz",
        "adc":"~1.2",
        "ldt":"~1.2.3",
        "xyz":"2.x",
        "rst":"3.3.x"
    }
}

19.12 devDependencies

如果有人需要使用你的模块,他们可能不需要你开发使用的外部测试或者文档框架
此时,最好将这些附属的项目列在devDependencies中
这部分内容会在执行npm link或者npm install时初始化,并可以像其他npm配置参数一样管理

对于非特定平台的构建步骤,比如需要编译CoffeeScript,可以用prepublish脚本实现,并把他依赖的包放在devDependencies中
注:
prepublish定义了在执行npm publish的时候先执行的脚本
如

{
   
    "name":"ethopia-waza",
    "description":"a delightfully fruity coffee varietal",
    "version":"1.2.3",
    "devDependencies":{
   
        "coffee-script":"~1.6.3"
    },
    "scripts":{
   
        "prepublish":"coffee -o lib/ -c src/waza.coffee"
    },
    "main":"lib/waza.js",
}

prepublish脚本会在publishing前运行,这样用户就不用自己去require来编译就能使用,并且在开发模块中(如本地运行npm install)会运行这个脚本以便更好的测试


感谢阅读,祝君暴富!


原文链接: https://hanshan.blog.csdn.net//article/details/140207792

标签: #node 5 #软件开发 1171
相关文章

万字:支付“核心系统”详解 2024-11-02 15:33

专栏作者:隐墨星辰 \| 主编:陈天宇宙 这篇文章也尝试化繁为简,探寻支付系统的本质,讲清楚在线支付系统最核心的一些概念和设计理念。 虽然支付行业已经过了风头最劲的时光,但跨境支付仍然在蓬勃发展,每年依然有很多新人进入这个行业,这篇文章尝试为这些刚入行的新人提供一点帮助。 文章只介绍一些支付行业十几

资深支付架构师视角:实战从问题定义到代码落地的完整套路 2024-11-02 15:33

前言 今天从一个实际案例入手,介绍站在架构师的角度,如何识别并定义问题,提炼需求,技术方案选型,再到详细设计,最后利用AI的能力协助写出核心的代码,验证与调优。 解决问题存在一定的模式,也可以称之为框架,总结出自己的思考和解题框架,以后再碰到同类型的问题就可以如庖丁解牛一样容易。 很多年前,我写代码

Spring 实现 3 种异步接口 2024-10-18 09:07

大家好,我是苏三~ 如何处理比较耗时的接口? 这题我熟,直接上异步接口,使用 Callable、WebAsyncTask 和 DeferredResult、CompletableFuture等均可实现。 但这些方法有局限性,处理结果仅返回单个值。在某些场景下,如果需要接口异步处理的同时,还持续不断地

重学SpringBoot3-集成Redis(五)之布隆过滤器 2024-10-08 11:24

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(五)之布隆过滤器 1. 什么是布隆过滤器? * 基本概念 适用场景 2. 使用 Redis 实现布隆过滤器 * 项目依赖 Redis 配置

设计模式第16讲——迭代器模式(Iterator) 2024-10-08 11:24

一、什么是迭代器模式 迭代器模式是一种行为型设计模式,它提供了一种统一的方式来访问集合对象中的元素,而不是暴露集合内部的表示方式。简单地说,就是将遍历集合的责任封装到一个单独的对象中,我们可以按照特定的方式访问集合中的元素。 二、角色组成 抽象迭代器(Iterator):定义了遍历聚合对象所需的方法

vue2路由和vue3路由区别及原理 2024-10-08 11:24

一、Vue2 与 Vue3 路由的区别 1. 创建路由实例方式的不同 Vue 2 中,通过 Vue.use() 注册路由插件,并通过 new VueRouter() 来创建路由实例。 import Vue from 'vue';import VueRouter from 'vue-router';i

目录

IT 外包服务商

  • 意见投递
  • zyf6619

软件开发应用

主菜单

  • 首页
  • 软件开发
  • 计算机基础
  • Hello Halo
  • 新手必读
  • 关于本知识库
Copyright © 2024 your company All Rights Reserved. Powered by Halo.