众所周知,任何npm模块都可以通过运行一个简单的命令安装:npm install <module_name>。
我已经安装了一些我不再使用的模块,我只是想把它们弄掉。我对此有几个问题:
我们是否有任何命令或过程来从根目录卸载一个模块(比如npm uninstall <module_name>) 或者仅仅删除模块文件就可以了? 如果我们保留未使用的模块会对我们有什么影响?
众所周知,任何npm模块都可以通过运行一个简单的命令安装:npm install <module_name>。
我已经安装了一些我不再使用的模块,我只是想把它们弄掉。我对此有几个问题:
我们是否有任何命令或过程来从根目录卸载一个模块(比如npm uninstall <module_name>) 或者仅仅删除模块文件就可以了? 如果我们保留未使用的模块会对我们有什么影响?
当前回答
在npm v6+ npm uninstall <package_name>在node_modules文件夹和package.json文件中删除它。
其他回答
# Log in 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
命令就是npm uninstall <name>
Node.js文档https://npmjs.org/doc/有所有你需要知道的npm命令。
本地安装将位于应用程序的node_modules/目录中。如果模块没有引用,这不会影响应用程序。
但是,如果您正在删除一个全局包,那么任何引用它的应用程序都会崩溃。
这里有不同的选择:
NPM卸载<name>从node_modules中删除模块,但不更新package.json
NPM卸载<name>——save也从package.json的依赖项中删除它
npm uninstall <name>——save-dev也从package.json中的devDependencies中删除它
NPM uninstall -g <name>——save也会全局删除它
我发现这一点很艰难,即使它看起来很明显。
我最初尝试在脚本中使用一个简单的for循环运行npm uninstall module-name遍历node_modules目录。我发现它不会工作,如果你调用完整的路径,例如,
npm uninstall module-name
在工作,但是
npm uninstall /full/path/to/node_modules/module-name
没有工作。
在npm v6+ npm uninstall <package_name>在node_modules文件夹和package.json文件中删除它。
要批量删除node_modules文件夹中的包,也可以从文件package中删除它们。Json,保存它,然后在终端运行NPM prune。
这将删除那些存在于文件系统中,但在package.json文件中没有使用/声明的包。
附注:这在Windows上特别有用,因为您可能经常遇到由于“超过路径长度限制”而无法删除某些文件的问题。