npm安装模块各种报EPERM错误
$ npm install gulp-sequence --save-dev
npm ERR! path E:\BaiduYunDownload\es6\node_modules\fsevents\node_modules\getpass\lib\index.js
npm ERR! code EPERM
npm ERR! errno -4048
npm ERR! syscall unlink
npm ERR! Error: EPERM: operation not permitted, unlink 'E:\BaiduYunDownload\es6\node_modules\fsevents\node_modules\getpass\lib\index.js'
npm ERR! { Error: EPERM: operation not permitted, unlink 'E:\BaiduYunDownload\es6\node_modules\fsevents\node_modules\getpass\lib\index.js'
npm ERR! stack: 'Error: EPERM: operation not permitted, unlink \'E:\\BaiduYunDownload\\es6\\node_modules\\fsevents\\node_modules\\getpass\\lib\\index.js\'',
npm ERR! errno: -4048,
npm ERR! code: 'EPERM',
npm ERR! syscall: 'unlink',
npm ERR! path: 'E:\\BaiduYunDownload\\es6\\node_modules\\fsevents\\node_modules\\getpass\\lib\\index.js' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\LiRong\AppData\Roaming\npm-cache\_logs\2017-11-24T13_48_41_968Z-debug.log
参考了http://cnodejs.org/topic/59ae297ec0c71ab7040ec782
有回答说:npm降级处理或者用yarn处理
所以查找了一下yarn的相关知识,跃跃欲试喽!!!
什么是 yarn?
简单来说,yarn 是一个与 npm 功能相同的工具,用于前端项目的依赖管理。在使用 npm 的项目中,使用 npm 命令的地方都可以使用 yran 来代替。
为什么要使用 yarn 替代 npm 呢?yarn 相对 npm 来说,主要的特点有:
- 离线、并行安装:依赖并行安装,缓存已下载过的依赖并优先使用,各种优化使得安装依赖速度显著提升
- 确定性:默认生成 yarn.lock 文件,可以保证各开发人员开发安装依赖的目录具有一致性
- more…
- 二、下载yarm安装文件安装或使用npm直接安装
下载yarm.msi(0.24.6版本):http://pan.baidu.com/s/1qXEgXYk
npm安装: cnpm install yarn -g
在项目中使用
首次初始化项目时执行,在每次项目启动/构建之前,也都应执行一次,以保证本地依赖得到及时更新。
该命令会检查 package.json 和 yarn.lock 文件中的依赖,当有其内容更新,会进行依赖更新安装。
开始新项目
添加依赖包
升级依赖包
移除依赖包
安装项目的全部依赖
或者
在一个新的项目中使用 yarn,我们会这么来做:
- 写好 package.json,写入初始的第三方依赖
- 执行 yarn 命令,初始化安装项目依赖,生成 yarn.lock 文件
- 后续通过执行 yarn add xxx 添加更多需要的依赖(也可直接在 package.json 文件中写入)
- 当确定需要更新依赖模块到其最新版本时,执行 yarn upgrade 命令
- 配置项目启动命令执行前,先执行 yarn 命令,以保证当 yarn.lock 被更新时,本地依赖也及时得到更新。例如,在 package.json 的 script 部分中配置 start 命令: "start": "yarn && yarn run build:dev"
真的很好用,暂时不会被npm err困扰了