npm 包 @npmcli/run-script 使用教程

简介

在编写前端项目的过程中,我们可能需要在本地或者远程服务器上运行一些自定义的脚本。这时候,我们可以使用 npm 包 @npmcli/run-script 来快捷地运行这些脚本。

@npmcli/run-script 是一个 npm 包,可以让我们在 package.json 中定义和执行自定义的命令。通过它,我们可以在项目根目录下通过命令行执行自己定义的命令。同时,它还提供了一些方便的 API,可以在 Node.js 中调用。

本篇文章将详细介绍 @npmcli/run-script 的使用方法,并提供实例代码帮助读者更好地理解。

安装

在项目根目录中运行以下命令:

--- ------- ------------------

使用

命令行执行

我们可以在 package.json 中定义自己的脚本,例如:

-
  ---------- -
    -------- ------ --- --------- -----
    ------- ------ -------------
  -
-

然后,在命令行中执行以下命令:

--- --- -----
--- --- ----

这样就可以快速地执行我们定义好的脚本了。

API 调用

除了通过命令行执行,@npmcli/run-script 还提供了一些方便的 API 可以在 Node.js 中调用。

run

通过 run 方法可以在 Node.js 中调用自定义的脚本。例如,我们可以在 Node.js 中编写以下代码:

----- --- - -------------------------------------

-------------------- -- -
  ------------------ -------
--

这段代码将会执行我们在 package.json 中定义的 build 命令,并且在执行完成后输出 build done!。

spawn

如果我们需要在 Node.js 中调用自己的脚本并且传入一些参数,可以使用 spawn 方法。例如,我们在 Node.js 中编写以下代码:

----- ----- - -----------------------------------

----- ----- - -------------- ------- -----------
----------------- ---- -- -
  ------------------ ------ ---- ---- ---------
--

这段代码将会执行我们在 package.json 中定义的 build 命令,并且接收从命令行传入的参数,最后输出 build exited with code 0。

深度解析

package.json 中 script 字段

在上文的例子中,我们可以看到自定义命令都定义在 package.json 的 scripts 字段中。这个字段中,可以包含任意个自定义脚本。

每个脚本都有一个名称和一个命令。命令可以是任何可由通用 shell 解释的脚本或命令,例如 npm 命令、shell 命令或其他脚本命令。

关于 NPM 环境变量

在执行自定义脚本时,有时候我们需要读取一些环境变量。这时候,需要注意 NPM 环境变量的使用方式。

对于在 package.json 中定义的每个脚本,NPM 都会将该脚本的路径添加到 PATH 环境变量中。在该脚本中,我们也可以通过获取 $npm_package_xxx 环境变量的方式,读取 package.json 中的内容。

然而,在我们执行自定义脚本时却不能直接使用环境变量,因为在运行脚本时,NPM 并没有为该脚本添加到 PATH 环境变量中。

解决这个问题的方法是通过在脚本中显式地通过 $PATH 环境变量来找到所需的程序或资源。例如,在以下例子中,我们需要调用 git:

-
  ---------- -
    --------- ---- --- - -- --- -------
  -
-

但是,在执行 npm run commit 时,我们会得到一个错误:

--- ---- ------- --- -----

这个错误是因为在执行自定义脚本时,NPM 并没有将 git 的路径添加到 PATH 中。解决方法是显式地写出 git 的二进制文件的绝对路径:

-
  ---------- -
    --------- ------------------- --- - -- ------------------ -------
  -
-

这样做就可以在自定义脚本中使用 git 了。

API 调用

@npmcli/run-script 在 API 调用方面提供了两个方法:run 和 spawn。

run

run 方法用于在 Node.js 中调用自定义脚本。在调用时,需要传入一个参数,即我们在 package.json 中定义的脚本名称。

run 方法会返回一个 Promise 对象,在 Promise 成功时,表示自定义脚本顺利执行结束;在 Promise 失败时,表示执行过程中出现了异常。

以上面的 build 为例,在 Node.js 中进行调用可以这样写:

----- --- - -------------------------------------

-------------------- -- -
  ------------------ -------
--

这段代码将会执行我们在 package.json 中定义的 build 命令,并且在执行完成后输出 build done!。

spawn

spawn 方法和 run 方法类似,也用于在 Node.js 中调用自定义脚本。不同之处是,spawn 方法可以接收一个数组作为参数,在数组中指定需要传入的参数。

在使用 spawn 方法时,我们需要注意一些细节。首先,我们需要引入 child_process 模块中的 spawn 方法。其次,我们需要将 spawn 方法的第一个参数设置为自定义脚本的名称。最后,我们需要设置一个 stdio 属性为 'inherit',这是由于 spawn 方法会创建一个子进程,并且我们需要在控制台中看到该子进程的输出。

以 build 命令为例:

----- ----- - -----------------------------------

----- ----- - -------------- ------- -----------
----------------- ---- -- -
  ------------------ ------ ---- ---- ---------
--

这段代码将会执行我们在 package.json 中定义的 build 命令,并且接收从命令行传入的参数,最后输出 build exited with code 0。

总结

本文详细介绍了如何使用 @npmcli/run-script 在命令行和 Node.js 中调用自己定义的脚本。同时,我们还介绍了一些注意事项和细节,帮助读者更好地理解并使用该工具。希望读者能够对 @npmcli/run-script 有更深入的理解,从而提高前端项目开发的效率。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/5eedc51eb5cbfe1ea06121e0


猜你喜欢

  • npm 包 import-cost 使用教程

    什么是 import-cost ? import-cost 是一款通过分析你项目中的 import 语句,计算出所引入的依赖包的大小,并在代码编辑器的编辑器界面显示出来的插件工具。

    4 年前
  • npm 包 import-size 使用教程

    随着前端项目越来越庞大复杂,前端工程师们开始更加注重代码的性能和优化。其中一个方向就是减少脚本的加载时间,因此,前端工程师们开始更关注每个 npm 包的大小。而 npm 包的大小与项目中的加载时间和渲...

    4 年前
  • npm包emoticon使用教程

    在前端开发中,我们经常需要在设计中使用表情符号来丰富页面内容。但是,手动添加表情符号是非常费时费力的,这时候我们可以使用一个npm包,emoticon来快速添加常用的表情符号。

    4 年前
  • npm 包 @sourcegraph/prettierrc 使用教程

    前端开发中代码的格式化非常重要,可以提高代码的可读性,降低代码维护难度。而 prettier 是众多代码格式化工具中比较受欢迎的一个,它使用了一套规则来自动格式化代码。

    4 年前
  • npm 包 @sourcegraph/tslint-config 使用教程

    前言 在进行前端开发的过程中,为保证代码的质量和规范,我们通常会使用 TSLint 工具对我们的代码进行静态分析。而 @sourcegraph/tslint-config 就是一种 TSLint 配置...

    4 年前
  • npm 包 @brummelte/eslint-config 使用教程

    随着前端技术的发展,前端代码越来越复杂,为了保证代码的质量和可维护性,我们需要使用一些静态代码检查工具。其中,ESLint 是一种非常流行的工具。本文介绍如何使用 @brummelte/eslint-...

    4 年前
  • npm包 @ember-data/rfc395-data 使用教程

    简介 @ember-data/rfc395-data 是一个 Ember.js 数据库组件,用于实现与 REST API 服务器之间的数据交互。它可用于完成各种前端任务,比如反馈数据、进行路由转换、过...

    4 年前
  • npm 包 eslint-plugin-you-dont-need-momentjs 使用教程

    在前端开发中,时间格式是一个常见的问题。实现时间格式化通常需要使用第三方库,其中比较常用的是 moment.js。但是,随着前端应用变得越来越复杂,moment.js 的体积和性能成为了大家关注的问题...

    4 年前
  • npm 包 `eslint-config-starstuff` 的使用教程

    简介 eslint-config-starstuff 是一个基于 ESLint 的 JavaScript 代码规范定义,旨在提高代码的可读性、可维护性和一致性。它的规则集合是从 eslint-conf...

    4 年前
  • NPM包@Styled-system/background的使用教程

    简介 @styled-system/background是一个基于Styled System的npm包,提供了制作背景图片的样式属性。该包的好处是可以让开发者更快的创建可重用的背景组件,同时也支持运行...

    4 年前
  • npm 包 @styled-system/border 使用教程

    介绍 @styled-system/border 是一个基于 styled-system 实现的 npm 包,提供了可重用的 CSS 样式属性和样式内联方式,使开发人员可以更加方便地在 React 项...

    4 年前
  • npm 包 @styled-system/color 使用教程

    在前端开发中,我们经常需要使用一些颜色相关的工具库来方便地管理和使用颜色。@styled-system/color 就是其中一款非常实用的 npm 包,它可以让我们更加方便地定义和使用颜色。

    4 年前
  • npm 包 @styled-system/flexbox 使用教程

    简介 @styled-system/flexbox 是一个使用 CSS 弹性盒子布局 (Flexbox) 的 React 样式系统扩展。它为开发者提供了一个方便易用的接口,以便快速构建出具有弹性盒子布...

    4 年前
  • npm 包 @styled-system/grid 使用教程

    在前端开发中,布局是一个非常重要的部分。通过使用 CSS Grid 或者 Flexbox 可以实现高效的布局。而在实际开发中,为了更加方便地实现布局,可以使用一些帮助我们布局的工具库。

    4 年前
  • npm 包 @styled-system/layout 使用教程

    简介 @styled-system/layout 是一个基于 styled-system 的 npm 包,它提供了一系列用于布局的样式属性,使得开发者能够通过这些属性快速而又方便地实现网页布局,而不用...

    4 年前
  • npm 包 @styled-system/position 使用教程

    前言 在 Web 开发领域中,CSS 是我们经常使用的样式语言。在 CSS 中,定位元素是其中一个基本的概念。我们可以使用 position 属性将元素进行定位。但是,在实际的开发中,定位元素的时候经...

    4 年前
  • npm 包 @styled-system/shadow 使用教程

    如果你经常从事 Web 前端开发,那么想必你一定会用到前端组件库和样式系统,这些工具可以帮助我们更快捷地构建美观且高效的页面。其中,@styled-system/shadow 是一个非常流行的 npm...

    4 年前
  • npm 包 @styled-system/space 使用教程

    什么是 @styled-system/space @styled-system/space 是一个用于在 React 应用中管理间距的 npm 包,它提供了可以轻松设置间距的 CSS 属性。

    4 年前
  • npm 包 @styled-system/typography 使用教程

    前言 在前端开发中,为了实现设计师的设计稿,常常需要不断重复编写 CSS 样式,这样不仅浪费时间精力,还可能出现样式不一致的问题。此时,我们可以使用 CSS 预处理器、CSS 框架等工具来简化样式开发...

    4 年前
  • npm 包 sql-parse 使用教程

    在前端开发中,经常需要将 SQL 语句进行解析,以便我们能够更好地理解和处理数据。而 npm 包 sql-parse 正是一个能够帮助我们实现这一目的的工具。 在这篇文章中,我们将介绍如何使用 npm...

    4 年前

相关推荐

    暂无文章