如何确定我的流星项目中正在使用哪些流星包

时间:2019-03-06 16:40:19

标签: meteor

我有一个很大的流星项目,并且已经安装了几个流星包。我这样做只是为了尝试一个流星包,以查看该包是否适用于我的项目。不幸的是,在确定不需要在项目中安装那些软件包之后,我没有卸载那些软件包。要卸载,请使用以下命令:

meteor remove <package-name>

现在我的流星项目中有许多我可能没有使用的软件包。通过执行以下命令,可以看到正在使用的软件包的列表:

meteor list

如何确定在流星项目中安装的软件包是否正在我正在处理的项目中使用?

1 个答案:

答案 0 :(得分:2)

这是一个很好的问题!我不知道最佳实践,而且流星本身本身也没有任何工具可以帮助实现这一目标,因此脚本编写是必经之路。

为此,如果您严格总是导入您使用的内容,而不是依赖于软件包导出的全局变量,那么这将起作用:

for n in $(cat .meteor/packages | grep ^[^#] | cut -d '@' -f 1 | xargs); do
  echo;
  echo $n;
  grep ^import.*meteor/$n -R server/ client/ imports/; # list all sub-folders here, but omit node_modules
done

这将为您提供如下列表:

packageName1:
somefile.js:import something from 'meteor/packageName1';
..

packageName2:

packageName3:
somefileElse.js:import something from 'meteor/packageName3';

因此,您将能够看到哪些软件包没有导入到任何地方。

同样,这只是一个近似值(使用一个包装的充分条件,但不是必要条件)。因此,仍然可以使用显示为空的包,但只能通过全局变量导出它们,而不是使用新的导出/导入语义。