是否有一种方法可以确定您的包中是否有包。Json文件,不再需要?
例如,当我尝试一个包,然后注释或删除代码,但忘记卸载它时,我最终得到了几个可以删除的包。
确定一个包是否可以安全删除的有效方法是什么?
是否有一种方法可以确定您的包中是否有包。Json文件,不再需要?
例如,当我尝试一个包,然后注释或删除代码,但忘记卸载它时,我最终得到了几个可以删除的包。
确定一个包是否可以安全删除的有效方法是什么?
当前回答
在Yarn 2。X及以上,使用:
yarn dlx depcheck
Yarn DLX被设计用来执行一次性脚本,这些脚本可能已经在Yarn 1.x中作为全局包安装。管理系统级包超出了yarn的范围。为了反映这一点,yarn全局已被删除。
来源:https://yarnpkg.com/getting-started/migration use-yarn-dlx-instead-of-yarn-global
其他回答
你可以使用一个叫做depcheck的npm模块(至少需要Node的10版本)。
安装模块: NPM安装depcheck -g 或 纱线全局添加depcheck 运行它并找到未使用的依赖项: depcheck
这种方法的优点是您不必记住find或grep命令。
要运行而不安装使用npx:
npx depcheck
如果你使用的是类似Unix的操作系统(Linux, OSX等),那么你可以使用find和egrep的组合来搜索包含包名的require语句:
find . -path ./node_modules -prune -o -name "*.js" -exec egrep -ni 'name-of-package' {} \;
如果你搜索整个require('name-of-package')语句,记得使用正确类型的引号:
find . -path ./node_modules -prune -o -name "*.js" -exec egrep -ni 'require("name-of-package")' {} \;
or
find . -path ./node_modules -prune -o -name "*.js" -exec egrep -ni "require('name-of-package')" {} \;
缺点是它不是全自动的,也就是说它不能从包中提取包名。Json并检查它们。您需要自己为每个包执行此操作。因为包。json只是json,这可以通过编写一个使用child_process的小脚本来纠正。为每个依赖项运行此命令。让它成为一个模块。并将其添加到NPM回购…
这里的许多答案都是关于如何只找到未使用的物品。
如果. .我想…
自动——a)找到+ b)删除不使用的项目
选项2,下面似乎是较新的方式。
选项1:
安装该节点项目。
$ npm install -g typescript tslint tslint-etc
在根目录下,添加一个新文件tslint-imports.json
{
"extends": [
"tslint-etc"
],
"rules": {
"no-unused-declaration": true
}
}
请自行承担运行风险,进行备份:)
$ tslint --config tslint-imports.json --fix --project .
选项2:根据@Alex和@JacopKane的建议,谢谢
// newer one line option
npx depcheck --json | jq '.dependencies[]' | xargs -L1 npm rm
// or
npm uninstall $(npx depcheck --oneline)
还有一个叫做npm-check的包:
npm-check 检查过时的、不正确的和未使用的依赖项。
它是相当强大和积极发展的。它的功能之一是检查未使用的依赖项-对于这一部分,它使用了另一个答案中提到的depcheck模块。
检查未使用的依赖项
npm install depcheck -g
depcheck
查看过时的图书馆
npm outdated