假设我已经在npm上发布了一个nodejs模块。很简单,您安装并导入它,并给定一个字符串和一个配置对象,它将返回一个字符串。
现在,我想将其作为本地和全局模块使用:我在package.json中的bin中添加了一个脚本。该脚本导入并使用本地函数并打印结果。为了处理参数和配置对象,我使用npm yarg作为依赖项。
问题是这样的:如果我想将模块安装为本地模块,则不需要yarg依赖项,因为仅当模块用作全局模块时才使用它。因此,这是在浪费空间。
是否只有当我的模块作为全局模块而不是本地模块安装时,才能安装yarg依赖项?
答案 0 :(得分:1)
无论如何这都不是常见的做法。在某些情况下,本地安装的软件包可以用作CLI可执行文件,尤其是作为NPM脚本的一部分。应当npm
或grunt
之类的所有本应在全球范围内使用的流行软件包也可以在本地安装和运行。
没有可靠的方法来检测是否已全局安装软件包。可以通过检测模块是否位于node_modules
全局位置中来完成此操作。可能有一些警告取决于特定的系统。
yargs
的占用空间为760 Kb,这并不重要。如果特定于CLI的功能占用的空间很大,则可以提取CLI可执行文件以分离依赖于原始程序包的程序包。