npm WARN checkPermissions Missing write access...

当我们使用 npm uninstall 或 cnpm uninstall 时经常会出现这样的错误。事实上这个并不是由于权限问题导致的。

在安装模块时我们经常使用 --save 或 --save-dev。

安装:

cnpm install express --save // 安装到 dependencies中
cnpm install express -S // 等价于 --save
cnpm install express --save-dev // 安装到 devDependencies中
cnpm install express -D // 等价于 --save-dev
cnpm install express // 在package.json中没有记录

注意:上述的 -S 和 -D 必须使用大写,否则无效。

如:

cnpm install express -s
cnpm install express -d
// 这两种写法都将被识别为 cnpm install express

卸载:

cnpm uninstall express

卸载时经常会出错,报类似 npm WARN checkPermissions Missing write access…的错误。原因:

1.卸载命令错误。

(1)使用 cnpm install express -S 安装却使用 cnpm uninstall express -D 卸载,此时正确的卸载方式应该是使用:cnpm uninstall express 或 cnpm uninstall express -S。事实上,无论是使用 cnpm install express 或 cnpm install express -S 或 cnpm install express -D 都可以使用 cnpm uninstall express 来卸载。

(2)一旦卸载失败,再次卸载模块将不会成功。解决办法:重新安装该模块,再通过 uninstall 卸载即可。

2.同一个模块多次安装。

如:即执行了 cnpm install express -S 又执行了 cnpm install express -D。此时的模块将无法被成功卸载。package.json中的 dependencies 和 devDependencies 中相同的模块只能存在一个。

解决办法:手动删除 package.json 中 dependencies 或 devDependencies 中的一个模块条目,再使用 uninstall 卸载。

注:通过安装 cnpm install express 和 cnpm install express -D 再使用命令 cnpm uninstall express 是可以正常执行的。原因是:package.json 中的相同的模块只有一个,所以卸载不会出现问题。

你可能感兴趣的:(npm,npm)