返回

npm 脚本:掌握脚本执行的更多秘密

前端

导言

谈到 npm,大多数开发人员都知道可以通过 npm run script-name 在命令行中轻松执行 package.json 中定义的脚本。然而,对于 npm 脚本的全部功能,您可能并不了解。本文将深入探讨 npm 脚本的鲜为人知方面,揭示其隐藏的力量和应用潜力。

执行更多脚本

当您键入 npm start 时,默认情况下 npm 会执行 package.json 脚本中的 start 脚本。但是,您还可以指定其他脚本,如下所示:

npm run [script-name]

这使您可以方便地执行 testbuild 或任何您在脚本对象中定义的其他自定义脚本。

参数传递

npm 脚本允许您向脚本传递参数,从而增加其灵活性。要传递参数,请在脚本名称后添加空格和参数列表:

npm run [script-name] [arg1] [arg2] ...

例如,以下命令将运行 build 脚本并传递两个参数:

npm run build --prod --env=staging

嵌套脚本

npm 脚本支持嵌套,这意味着一个脚本可以调用另一个脚本。这允许您创建更复杂的脚本管道,从而自动化复杂的任务。要嵌套脚本,请在脚本名称前添加 &&||

"scripts": {
  "build": "npm run clean && npm run compile",
  "clean": "rimraf dist",
  "compile": "tsc"
}

在上面的示例中,build 脚本将首先运行 clean 脚本,然后运行 compile 脚本。

环境变量

npm 脚本可以访问环境变量,这使您可以动态调整脚本的行为。要访问环境变量,请使用 process.env 对象:

console.log(process.env.NODE_ENV); // 输出:"production"

自定義腳本名稱

默認情況下,npm 脚本的名稱與其對應的屬性名稱相同。但是,您可以自定義腳本名稱,如下所示:

"scripts": {
  "start": "node app.js",
  "build:prod": "webpack --mode production"
}

在上面的示例中,start 脚本將執行 app.js 文件,而 build:prod 脚本將使用 webpack 的生產模式構建應用程序。

结论

npm 脚本远不止简单的命令执行。它们提供了各种高级功能,可帮助您自动化任务、提高灵活性并增强您的开发工作流程。通过掌握这些鲜为人知的技巧,您可以充分利用 npm 脚本,使其成为您开发工具箱中不可或缺的工具。