安装
npm install -g cnpm --registry=https://registry.npm.taobao.org
升级
自己安装自己:npm install -g npm
node.js版本切换
window:使用n,依赖node。npm i -g n
MacOS
使用:nvm,不依赖node。 curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash
列出已安装实例:nvm ls
也可以使用n。
镜像仓库切换
方法一:npm config set registry URL
URL为镜像地址。
方法二:
npm install -g nrm
nrm use taobao
nrm ls
安装依赖
当不加任何参数时执行 npm install,这两个包都会被安装到 node_modules 中。
当执行 npm install --only=prod,只会安装 dependencies 中的包。
当执行 npm install --only=dev,只会安装 devDependencies 中的包。
注意事项:当我们把当前这个包发布出去以后,别人通过 npm install npm-demo 安装它时,只会安装它的 dependencies,而会忽略 devDependencies。这意味着所有与功能相关的依赖都要放在 dependencies 中,而 devDependencies 中通常会放一些如构建工具( Rollup )、质量检测工具( Eslint )等只有本地开发才使用的包。
错误
(1)Error: Cannot find module…
Try running npm link gulp
in your application directory (to create a local link to the globally installed Gulp module).
npm link gulp
F:\project-path\node_modules\gulp -> F:\node-path\node-v8.11.3-win-x64\node-v8.11.3-win-x64\node_modules\gulp
(2)万能修复大法?rm -rf node_modules && npm i
很多开发同学在使用 npm 的时候一发现 npm 模块有问题就执行 rm -rf node_modules && npm i,一些情况下可以解决问题,一些情况下却不能,让我们尝试去看看这是为什么。
当我们执行 npm install 或者 yarn 来安装模块的时候,大概经历了几个过程:
首先会寻找包版本信息文件( pakcage-lock.json,yarn.lock等),如果发现有版本信息文件,则依照它来进行模块安装。
检查 pakcage.json 中的依赖,如果此时项目中不存在版本信息文件,则完全按照 pakcage.json 进行安装,并生成一个版本信息文件。如果此时存在版本信息文件,则只会安装 package.json 中有而版本信息文件中没有的包。
如果确实有这种新包,则更新版本信息文件。
因此当我们发现项目中的某个包和我们预想不一致时,首先查看版本信息文件中该包的来源和版本,因为在安装过程中它的优先级最高。有的时候执行了 rm -rf node_modules && npm i 也没有解决问题,可能是由于版本信息文件中这个包本身就有问题,无论你怎么删掉重装也还是一样。