什么是可选依赖项,我们应该什么时候使用它们?
什么是可选依赖项?
依赖项是项目函数运行所依赖的库。
术语可选依赖项适用于在安装应用程序或项目期间不会导致失败的依赖项,因为如果它们失败,npm 将忽略它们。无论这些依赖关系是否存在,应用程序仍将按预期工作。
我们什么时候应该使用它们?
- 对于可能无法在每台机器上运行的依赖项,您可以将其用作后备。
- 这些依赖项主要用于减少库的传递负担。例如:如果一个库使用多种不同的数据库类型,但您通常只需要一种,那么您可以将依赖于库的依赖项标记为可选,以便用户可以提供他们喜欢的一种。
- 添加依赖项作为可选可以加快 Node 项目的安装过程。
请考虑以下示例,以更好地理解可选依赖项。
考虑一个场景,我们希望将Colors包作为依赖项包含在内,以帮助我们获取多个日志并在终端中设置它们的样式。当你在 Node.js 中使用 console.log() 时,如果你的终端有深色背景,你的输出通常是白色的,如果你的终端有浅色背景,你的输出通常是黑色的。如果您只需使用 console.log() 打印一些短消息,您就不必担心任何事情。相反,如果您打印出大量文本,则可能难以阅读。那么我们如何区分控制台上的文字呢?答案是我们可以使用多色控制台输出,以便程序员理解控制台语句。
现在,这个包没有必要在所有机器上都有效地工作,或者用户也不需要使用这个包来设置日志样式。在这种情况下,Colors 将是一个可选依赖项。这种依赖不应该中断应用程序的工作,因为它的目的是显示日志。
如何将依赖项安装为可选依赖项:我们可以使用以下命令将依赖项安装为可选依赖项:
npm i package_name --save-optional
npm 是否安装可选依赖项: npm 将自动安装列为依赖项的所有包。
将 Colors 包安装为可选依赖项:作为示例,我们将把 colors 包安装为可选依赖项。
第 1 步:初始化 npm
创建一个新的项目目录,转到您的终端,并使用以下命令初始化 npm。
npm init -y
第 2 步:安装 Colors 包作为可选依赖项。
npm i colors --save-optional
在 package.json 中,您的包将列在“optionalDependencies”键下。
注意:但是,并非所有依赖项都可以设为可选。当依赖项变为可选时,您的程序仍然负责处理它的缺失。
第 3 步:创建一个新文件“app.js”并在其中写入以下代码。
要使用颜色模块,首先,我们需要将它导入到我们的 app.js 文件中,就像我们对其他依赖项所做的那样。
const colors = require('colors');
然后我们将使用 colors.setTheme 为错误和警告设置主题并将一个对象传递给它。
colors.setTheme({
warn: 'yellow',
error: 'red'
});
现在我们准备好使用不同的样式:
console.log('Enter your text'.color/pattern)
示例:我们将使用各种颜色和背景。我们的文本将是粗体、斜体,并使用诸如彩虹之类的图案。随机图案每次都会产生不同的颜色和图案。彩虹图案产生彩虹色的文本。
- 应用程序.js
Javascript
// Using colors package as an optional dependency
const colors = require('colors');
// Setting themes
colors.setTheme({
warn: 'yellow',
error: 'red'
});
// Outputs a rainbow colored text
console.log('-----------------------------------------'.rainbow);
// Outputs a yellow , bold text
console.log('Hello,geeks'.yellow.bold);
// Outputs a black colored text with a bright green background
console.log('Welcome to GeeksforGeeks!!'.black.bgBrightGreen);
// Outputs a green underlined text
console.log('A Computer Science Portal for geeks'.green.underline);
// Outputs a italicised cyan colored text
console.log('You can watch tutorials.'.cyan.italic);
// Outputs an error
console.log("Oops! Currently , you don't have any courses in your account".error);
// Outputs a bold and bright magenta colored text
console.log("You can read articles".brightMagenta.bold);
// Outputs a rainbow colored text
console.log('CONTRIBUTE'.rainbow);
// Outputs a warning
console.log('Please login to contribute'.warn);
// Outputs a random pattern
console.log('Thanks for visiting gfg'.random);
// Outputs a rainbow colored text
console.log('-----------------------------------------'.rainbow);
运行应用程序的步骤:使用以下命令运行应用程序:
node app.js
输出:
我们通过区分显示它们使我们的输出日志更具可读性。
当我们希望使用依赖项但不希望我们的应用程序在安装失败的情况下中断时,我们可以将其置于可选依赖项中。尽管它记录了一些语句,但如果没有 Colors 包,应用程序可能不会崩溃。