npm—小记
Posted ycbeginner
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了npm—小记相关的知识,希望对你有一定的参考价值。
一枚菜鸟,实习不久,一次帮别人的安装前端项目环境时,遇到很多坑。由于之前没有对npm有太多了解,所以这次打算整理梳理一下。
NPM——Node 的模块管理器
NPM 安装
新版的node.js已经集成了npm.,如果安装了node(node安装教程),就无需再安装npm了。
npm -v //查看npm版本
一、npm install (缩写 npm i)
npm install <Module Name> //此时为本地安装
效果: 将安装包放在 ./node_modules 下(运行npm命令时所在的目录),如果没有node_modules目录,会在当前执行npm命令的目录下生成node_modules目录
过程:npm install 会先检查node_modules 目录之中是否已经存在指定模块。如果存在,就不再重新安装了,即使远程仓库已经有了一个新版本,也是如此。
假设:如果希望,一个模块不管是否安装过,npm 都要强制重新安装, 可以使用-f
或--force
参数。
npm install –f <Module Name>
或者
npm install <Module Name>--force
全局安装:
npm install <Module Name> -g #全局安装 或者 npm install -g <Module Name>
本地安装和全局安装区别:
本地安装 | 全局安装 |
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 [email protected]
7.安装模块指定版本号范围内的某一个版本
npm install <name>@<version range> npm install [email protected]”>=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] [<name> [<name> … ]
它会先到远程仓库查询最新版本,然后查询本地版本。如果本地版本不存在,或者远程版本较新,就会安装。
-g 参数会更新全局安装的模块。 如果没有指定name,且不是在某个模块内,会更新当前目录依赖的所有包都会更新;若当前目录在某个模块内,只更新该模块依赖的模块。
原理: npm update 命令怎么知道每个模块最新版本?
npm 模板仓库提供了一个查询服务registry。在https://registry.npmjs.org/
后面跟上模块名,会得到json对象,里面是该模块所以版本信息。
例如:https://registry.npmjs.org/vue
后面加入版本,例如 https://registry.npmjs.org/react/v0.14.6 ,可查看 React 的 0.14.6 版
四、查看安装信息
npm list -g //查看所有全局安装的模块
npm list grunt //查看grunt模块的版本号
npm ls //列出当前安装的了所有包 一般是到 /node_modules/目录下查看包是否还存在
npm ls grunt // 查看特定包具体信息
五、卸载
npm uninstall <Module Name>
六、搜索模块
npm search <Module Name>
七、创建模块
package.json 文件是别不可少的,可以使用npm生成package.json 文件
npm init //根据提示,输入,在最后输入“yes”后会生成package.json文件
八、其他命令
npm help //可查看所有命令 npm help <command> //可查看某条命令的详细帮助 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 属性下所有的命令
以上是关于npm—小记的主要内容,如果未能解决你的问题,请参考以下文章
npm : 无法加载文件 D:softcodeProcess ode ode_global pm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.micr +(代码片段