博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
npm—小记
阅读量:6672 次
发布时间:2019-06-25

本文共 3525 字,大约阅读时间需要 11 分钟。

一枚菜鸟,实习不久,一次帮别人的安装前端项目环境时,遇到很多坑。由于之前没有对npm有太多了解,所以这次打算整理梳理一下。


NPM——Node 的模块管理器

NPM 安装

新版的node.js已经集成了npm.,如果安装了node(),就无需再安装npm了。

npm -v  //查看npm版本

一、npm install  (缩写 npm i)(PS: 因为我用的是windows,所有有时在git bash下安装 npm install 时,会很久也不会安装,建议在windows自带的命令框安装比较好)

npm install 
//此时为本地安装

效果: 将安装包放在 ./node_modules 下(运行npm命令时所在的目录),如果没有node_modules目录,会在当前执行npm命令的目录下生成node_modules目录

过程:npm install    会先检查node_modules 目录之中是否已经存在指定模块。如果存在,就不再重新安装了,即使远程仓库已经有了一个新版本,也是如此。

假设:如果希望,一个模块不管是否安装过,npm 都要强制重新安装, 可以使用-f--force参数。

npm install –f 
或者 npm install
--force

 全局安装:

npm install 
-g #全局安装或者npm install -g

 本地安装和全局安装区别:

本地安装 全局安装

1.将安装包放在 ./node_modules 下(运行npm命令时所在的目录),

如果没有node_modules 目录,会在当前执行npm命令的目录下生成node_modules目录

1.安装包放在 /user/local下或者 你 node的安装目录
2.可以通过require()来引入本地安装包 2.可以直接在命令行里使用
3. package.json会被下载到当前所在目录,安装的模块会在 node_modules里面

3.package会被下载到特定的系统目录下,安装的package能够在所

有目录下使用。

 

不同情况下的安装:

1. 安装当前目录 package.json文件中配置的devDependencies模块

npm install 

2.安装本地的模块文件

npm install  ../package.tgz

3. 安装指定URL的模块

npm install https://github.com/indexzero/。。。。

4.安装本地文件系统中指定目录包含的模块

npm install <folder>

5.安装并更新package.json 中的版本配置

npm install <name> [–save|–save-dev|–save-optional]

  • 添加–save 参数安装的模块的名字及其版本信息会出现在package.json的dependencies选项中

  • 添加–save-dev 参数安装的模块的名字及其版本信息会出现在package.json的devDependencies选项中

  • 添加–save-optional 参数安装的模块的名字及其版本信息会出现在package.json的optionalDependencies选项中

6.安装模块的指定版本

npm install <name>@<version>     npm install underscore@1.5.2

7.安装模块指定版本号范围内的某一个版本

npm install <name>@<version range>    npm install async@”>=0.2.0 <0.2.9″

注明: 如果项目路径中有package.json文件时,直接使用npm install 方法就可以根据dependecies配置安装所有的依赖包。

 

二、 卸载 npm uninstall

卸载某一个模块,npm uninstall <Module Name>

在安装环境时,有时会删除全部的安装模块,这是可以删去 node_modules 文件夹,然后再 npm install  重新安装

若输入命令行的话,可以如下:

rm -rf node_modules npm install

三、 更新  npm update

若更新已安装的模块:

npm update [-g] [
[
… ]

它会先到远程仓库查询最新版本,然后查询本地版本。如果本地版本不存在,或者远程版本较新,就会安装。

-g 参数会更新全局安装的模块。 如果没有指定name,且不是在某个模块内,会更新当前目录依赖的所有包都会更新;若当前目录在某个模块内,只更新该模块依赖的模块。

原理: npm update 命令怎么知道每个模块最新版本?

npm 模板仓库提供了一个查询服务registry。在 后面跟上模块名,会得到json对象,里面是该模块所以版本信息。

例如: 后面加入版本,例如  ,可查看 React 的 0.14.6 版

四、查看安装信息

npm list -g    //查看所有全局安装的模块
npm list grunt  //查看grunt模块的版本号 npm ls   //列出当前安装的了所有包  一般是到 /node_modules/目录下查看包是否还存在 npm ls grunt  // 查看特定包具体信息

五、卸载

npm uninstall  

六、搜索模块

npm search 

七、创建模块  

package.json 文件是别不可少的,可以使用npm生成package.json 文件

npm init   //根据提示,输入,在最后输入“yes”后会生成package.json文件

八、其他命令

npm help //可查看所有命令npm help  //可查看某条命令的详细帮助 npm help install

package.json 说明

npm命令运行时会根据当前目录的package.json文件进行。相应的关键字含义如下所示:

name——应用名称description——应用描述keywords—— 关键字version —— 版本号config——应用的配置项homepage——主页author——作者repository——资源仓库地址bugs——bug 提交地址licenses——授权方式directories——目录main——应用入口文件bin——命令行文件dependencies——应用依赖模块devDependencies ——开发环境依赖模块engine——运行引擎scripts——脚本

自己混淆点——dependencies and devDependencies

1. dependencies 应用依赖模块  别人要使用这个package,至少需要安装哪些东西。 它会在安装时安装到当前模块的node_modules 目录下。

2. devDependencies 开发环境依赖模块  它主要是在开发环境中用到的依赖模块。用命令npm的命令install 或 link 加上参数  —dev 安装到当前模块的node_modules目录下。

版本号

npm 采用语义化版本识别

例子:0.4.1

主版本(0)当你做了不兼容的API修改

次版本(4)当你做了向下兼容的功能性新增

修订版本(1)当你做了向下兼容的问题修正

npm 脚本问题

实习中使用 npm run stage,主要是利用了 npm 脚本

它主要就是指 package.json 文件 使用 script字段 定义脚本命令

{  "name": "Test Project",  "devDependencies": {    "eslint": "^1.10.3"  },  "scripts": {    "lint": "eslint ."  }}

运行 npm run lint ,会自动执行 ./node_modules/.bin/elint

如果直接运行 npm run 不给出任何参数,就会列出 scripts 属性下所有的命令

 

转载于:https://www.cnblogs.com/ycbeginner/p/7241398.html

你可能感兴趣的文章
安装VS2010 SP1时遇到WCF RIA Service 版本错误
查看>>
UI--普通控件总结1--控件使用
查看>>
【外文翻译】使用Timer类去调度任务 ——java
查看>>
关于CountDownLatch控制线程的执行顺序
查看>>
plsql 乱码 注册表 修改文件
查看>>
Docker集群管理(三)—— docker swarm mode基础教程
查看>>
1.urlencoder和urldecoder的使用
查看>>
web移动端布局方式整理
查看>>
蛤玮学计网 -- 简单的判断ip
查看>>
如何解决div里面img图片下方有空白的问题?
查看>>
P3626 [APIO2009]会议中心
查看>>
防火墙
查看>>
Ubuntu下VIM使用指南
查看>>
QTREE5 - Query on a tree V——LCT
查看>>
spring mvc-使用Servlet原生API作为参数
查看>>
第13章 MySQL数据库与JDBC编程
查看>>
百度地图API使用记录
查看>>
linux docker
查看>>
增量式 爬虫
查看>>
第九周作业
查看>>