众所周知,任何npm模块都可以通过运行一个简单的命令安装:npm install <module_name>。

我已经安装了一些我不再使用的模块,我只是想把它们弄掉。我对此有几个问题:

我们是否有任何命令或过程来从根目录卸载一个模块(比如npm uninstall <module_name>) 或者仅仅删除模块文件就可以了? 如果我们保留未使用的模块会对我们有什么影响?


当前回答

您可以手动删除一个Node.js模块。对于Windows,

转到存储库的node_modules目录。 删除你不想要的Node.js模块。 不要忘记删除包中对模块的引用。json文件!您的项目仍然可以使用引用运行,但可能会得到一个错误。您也不希望在包中留下未使用的引用。Json文件,可能会导致混乱。

其他回答

好吧,要完整地回答这个问题,有两个方法(例如,我们将已安装的模块称为module1):

在不改变package.json的情况下删除module1: NPM卸载模块1 使用更改包删除module1。并将其从package.json中的依赖项中移除: NPM卸载——保存模块1

注意:为了简化上面提到的命令,你可以用-S代替——save,可以用remove, rm, r, un, unlink代替uninstall

要使用npm卸载一个模块,你可以使用:

npm uninstall moduleName

此外,如果您希望卸载并希望更改反映在您的包中。Json,然后你可以使用——save标志,像这样:

npm uninstall moduleName --save
OR
npm uninstall -S

如果你想从devDependencies中卸载一个模块,并希望更改反映在包中。json,然后你可以使用-D标志,像这样:

npm uninstall moduleName -D
# 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

我发现这一点很艰难,即使它看起来很明显。

我最初尝试在脚本中使用一个简单的for循环运行npm uninstall module-name遍历node_modules目录。我发现它不会工作,如果你调用完整的路径,例如,

npm uninstall module-name

在工作,但是

npm uninstall /full/path/to/node_modules/module-name 

没有工作。

如果你想卸载一些模块,那么只需要运行npm uninstall。

然后进入文件包。然后从那里删除不需要的模块,然后运行NPM install命令。它应该能解决你的问题。