正如公知的,任何NPM模块可以通过运行一个简单的命令被安装:npm install <module_name>
。
我已经安装了一些不再使用的模块,我只想把它们取下来。我对此有一些疑问:
我们是否有任何命令或过程可以从根目录卸载模块(如
npm uninstall <module_name>
),还是仅删除模块文件即可?如果我们保留未使用的模块,它将对我们有何影响?
正如公知的,任何NPM模块可以通过运行一个简单的命令被安装:npm install <module_name>
。
我已经安装了一些不再使用的模块,我只想把它们取下来。我对此有一些疑问:
我们是否有任何命令或过程可以从根目录卸载模块(如npm uninstall <module_name>
),还是仅删除模块文件即可?
如果我们保留未使用的模块,它将对我们有何影响?
Answers:
该命令很简单 npm uninstall <name>
Node.js文档https://npmjs.org/doc/具有npm需要了解的所有命令。
本地安装将在node_modules/
您的应用程序目录中。如果模块保留在那里而没有引用,则这不会影响应用程序。
但是,如果要删除全局软件包,则引用该全局软件包的所有应用程序都将崩溃。
这是不同的选项:
npm uninstall <name>
从中删除模块node_modules
但不更新package.json
npm uninstall <name> --save
也删除它dependencies
在package.json
npm uninstall <name> --save-dev
也删除它devDependencies
在package.json
npm uninstall -g <name> --save
也将其全局删除
npm -g ls | grep -v 'npm@' | awk '/@/ {print $2}' | awk -F@ '{print $1}' | xargs npm -g rm
以卸载所有通过gobally安装的模块。如果您使用的是Windows,则需要安装Cygwin或git才能运行它
npm uninstall <name>
从node_modules中删除模块,但不从package.json中删除。难道npm uninstall <name> --save
还删除的package.json的依赖。不要npm -g uninstall <name> --save
删除全局的依赖。
npm uninstall <name> now removes the module from both
package.json`和node_modules
如果无法使用npm uninstall <module_name>
,请输入进行全局尝试-g
。
也许您只需要以超级用户/管理员的身份进行操作即可sudo npm uninstall <module_name>
。
-g
如果有一个帮助npm WARN uninstall
。
为了完全回答这个问题,有两种方法:(例如,我们将已安装的模块称为module1)。
要不更改package.json 而删除module1 :
npm uninstall module1
要通过更改package.json 来删除module1 ,并将其从package.json中的依赖项中删除:
npm uninstall --save module1
注意:为了简化上述命令,可以使用-S代替--save,并且可以使用remove,rm,r,un,unlink而不是uninstall
要卸载节点模块:
npm uninstall <module_name>
这将从node_modules中删除该模块,但不会从package.json中删除该模块。因此,当我们再次执行npm install时,它将下载该模块。
因此,要从package.json中删除模块,请使用:
npm uninstall <module_name> --save
这也会从package.json中删除依赖项。
如果要卸载任何全局模块,则可以使用:
npm -g uninstall <module_name> --save
这将全局删除依赖项。
即使看起来很明显,我也很难做到这一点。
我最初尝试通过npm uninstall module-name
脚本中的简单for循环遍历运行的node_modules目录。我发现如果您调用完整路径,它将无法正常工作,例如
npm uninstall module-name
在工作,但是
npm uninstall /full/path/to/node_modules/module-name
没有工作。
对于Windows用户-如果要一次删除所有安装的节点模块:
它将卸载所有模块。
更新npm 5:
从npm 5.0.0开始,默认情况下已添加/删除了已安装/未安装的模块作为依赖项,因此不再需要--save选项。
跑
npm uninstall <package>
例如:
npm uninstall mongodb
它将从node_modules文件夹和package.json文件中删除该模块
uninstall
当我尝试使用与安装时使用的命令相同的命令时,该选项对我不起作用(因为我正在使用@latest
指令进行安装)
因此,例如,我安装了这样的软件包:
npm install @ngtools/webpack@latest
然后我想卸载它,所以我使用了相同的命令(包括@latest)
npm uninstall @ngtools/webpack@latest
所以上述卸载没有用,我必须删除@latest
&然后运行良好
npm uninstall @ngtools/webpack
我希望这有帮助
# login as root (might be required depending on install)
su -
# list all global packages
npm ls -g --depth=0
# list all local (project) packages
npm ls -p --depth=0
# remove all global packages
npm ls -g --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
# remove all local packges
npm ls -p --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -p rm
# NOTE (optional): to use node with sudo you can add the bins to /usr/bin
# NOTE $PATHTONODEINSTALL is where node is installed (e.g. /usr/local/node)
sudo ln -s $PATHTONODEINSTALL/bin/node /usr/bin/node
sudo ln -s $PATHTONODEINSTALL/bin/npm /usr/bin/npm
此外,如果您已开始使用yarn
,请代替npm
:
yarn remove <package-name>
等效于:
npm uninstall <package-name> --save
这将
-从中删除软件包package.json
,以及
-从项目node-modules
文件夹 中将其卸载
如果您是Windows,请以管理员身份运行CMD并键入npm -g uninstall <package name>
。
如果要卸载多个模块,只需运行npm uninstall
。然后转到package.json
并从那里删除不需要的模块,然后运行命令npm install
。它应该可以解决您的问题。