是否有一种方法可以确定您的包中是否有包。Json文件,不再需要?
例如,当我尝试一个包,然后注释或删除代码,但忘记卸载它时,我最终得到了几个可以删除的包。
确定一个包是否可以安全删除的有效方法是什么?
是否有一种方法可以确定您的包中是否有包。Json文件,不再需要?
例如,当我尝试一个包,然后注释或删除代码,但忘记卸载它时,我最终得到了几个可以删除的包。
确定一个包是否可以安全删除的有效方法是什么?
当前回答
gombog的脚本比npm-check要好得多。 我做了一点修改,所以node_modules中的devdependencies也会被找到。 示例sass从未使用过,但在sass-loader中需要
#!/bin/bash
DIRNAME=${1:-.}
cd $DIRNAME
FILES=$(mktemp)
PACKAGES=$(mktemp)
# use fd
# https://github.com/sharkdp/fd
function check {
cat package.json \
| jq "{} + .$1 | keys" \
| sed -n 's/.*"\(.*\)".*/\1/p' > $PACKAGES
echo "--------------------------"
echo "Checking $1..."
fd '(js|ts|json)$' -t f > $FILES
while read PACKAGE
do
if [ -d "node_modules/${PACKAGE}" ]; then
fd -t f '(js|ts|json)$' node_modules/${PACKAGE} >> $FILES
fi
RES=$(cat $FILES | xargs -I {} egrep -i "(import|require|loader|plugins|${PACKAGE}).*['\"](${PACKAGE}|.?\d+)[\"']" '{}' | wc -l)
if [ $RES = 0 ]
then
echo -e "UNUSED\t\t $PACKAGE"
else
echo -e "USED ($RES)\t $PACKAGE"
fi
done < $PACKAGES
}
check "dependencies"
check "devDependencies"
check "peerDependencies"
与原始脚本的结果:
--------------------------
Checking dependencies...
UNUSED jquery
--------------------------
Checking devDependencies...
UNUSED @types/jquery
UNUSED @types/jqueryui
USED (1) autoprefixer
USED (1) awesome-typescript-loader
USED (1) cache-loader
USED (1) css-loader
USED (1) d3
USED (1) mini-css-extract-plugin
USED (1) postcss-loader
UNUSED sass
USED (1) sass-loader
USED (1) terser-webpack-plugin
UNUSED typescript
UNUSED webpack
UNUSED webpack-cli
USED (1) webpack-fix-style-only-entries
修改后:
Checking dependencies...
USED (5) jquery
--------------------------
Checking devDependencies...
UNUSED @types/jquery
UNUSED @types/jqueryui
USED (1) autoprefixer
USED (1) awesome-typescript-loader
USED (1) cache-loader
USED (1) css-loader
USED (2) d3
USED (1) mini-css-extract-plugin
USED (1) postcss-loader
USED (3) sass
USED (1) sass-loader
USED (1) terser-webpack-plugin
USED (16) typescript
USED (16) webpack
USED (2) webpack-cli
USED (2) webpack-fix-style-only-entries
其他回答
还有一个叫做npm-check的包:
npm-check 检查过时的、不正确的和未使用的依赖项。
它是相当强大和积极发展的。它的功能之一是检查未使用的依赖项-对于这一部分,它使用了另一个答案中提到的depcheck模块。
检查未使用的依赖项
npm install depcheck -g
depcheck
查看过时的图书馆
npm outdated
我们可以使用下面的npm模块来实现这个目的:
https://www.npmjs.com/package/npm-check-unused
你可以使用一个叫做depcheck的npm模块(至少需要Node的10版本)。
安装模块: NPM安装depcheck -g 或 纱线全局添加depcheck 运行它并找到未使用的依赖项: depcheck
这种方法的优点是您不必记住find或grep命令。
要运行而不安装使用npx:
npx depcheck
在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