在 npm 脚本中运行批处理文件

2024-01-09

是否可以以及如何在 npm 命令中运行批处理脚本?

我有一个有角度的项目,在package.json文件,下scripts部分,我想定义一个 npm 命令来运行批处理脚本。我知道我可以使用关键字运行 shell 脚本bash e.g.

"start": "cd mydir && bash ./myscript"

然后我就可以跑了npm start在我的项目目录中,这将更改目录并执行myscript.sh脚本。在 npm 中运行批处理脚本的等效关键字是什么?

这里是新手。抱歉,如果这是一个重复的问题;也许我没有搜索正确的术语,但我无法找到这个问题的答案。


为了帮助提供此答案的上下文,假设我们有两个名为say-hello.bat and say-hello-cmd。两个批处理文件具有相同的简单设计内容,如下所示:

echo Hello World

通过调用两个批处理文件中的任何一个时npm-scripts,我们期望控制台记录:

Hello World

项目目录结构:

现在,假设我们的项目目录结构如下:

.
├── a
│   └── b
│       ├── say-hello.bat
│       └── say-hello.cmd
├── package.json
├── say-hello.bat
├── say-hello.cmd
└── ...

如您所见,我们有:

  • say-hello.bat and say-hello.cmd保存在项目根目录下。他们与package.json.
  • 我们还有say-hello.bat and say-hello.cmd存储在项目目录的子目录中,它们的路径是:a/b/

npm 脚本

能够通过调用这些批处理文件npm, the scripts的部分package.json应该定义如下:

{
  ...
  "scripts": {
    "bat": "say-hello.bat",
    "cmd": "say-hello.cmd",
    "bat-in-sub-dir": "cd a/b/ && say-hello.bat",
    "cmd-in-sub-dir": "cd a/b/ && say-hello.cmd"
  },
  ...
}

如果你现在cd到您的项目目录并运行以下任意命令:

  • npm run bat
  • npm run cmd
  • npm run bat-in-sub-dir
  • npm run cmd-in-sub-dir

批处理文件将运行,您将成功看到这些文字Hello World记录到控制台。

Notes

上面这些示例之间的显着区别是:

  • 当批处理文件存储在项目目录的根目录中时,您只需在脚本中提供批处理文件的名称。例如。

    "bat": "say-hello.bat"
    
  • 当批处理文件存储在项目目录的子目录中时(例如a/b/)你必须首先cd到该文件夹​​,然后提供要运行的批处理文件的名称。例如。

    "bat-in-sub-dir": "cd a/b/ && say-hello.bat"
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 npm 脚本中运行批处理文件 的相关文章

随机推荐

  • 检索每个用户的最新条目

    如果我有一个具有以下结构和数据的表 id user id created at 1 7 0091942 2 3 0000014 3 6 0000890 4 6 0029249 5 7 0000049 6 3 0005440 7 9 0010
  • 在内网发布Rstudio Shiny App

    我正在尝试构建一个 Rstudio Shiny 应用程序并将其发布到我们的内联网中 以便我们办公室的其他人都可以看到它 我是一个 Windows 用户 关于如何在 Linux 环境中设置闪亮服务器的在线说明对我来说有点困难 有没有一种简单的
  • 在 C++ 程序中评估从 max 导出的 3d 样条线

    我的 C 程序需要访问在 3ds Max 2011 中构建的 3D 样条线 我找到了一个简单的 maxscript http algorithmist wordpress com 2007 09 18 spline to xml maxsc
  • 如果goroutines涉及用户空间线程,阻塞操作是否会导致整个线程的上下文切换?

    抱歉 如果这个问题太愚蠢了 我正在阅读 goroutine 的详细信息Here http tleyden github io blog 2014 10 30 goroutines vs threads 根据该页面 它说Goroutines
  • 如何查明 XMLHttpRequest.send() 是否有效

    我在用XMLHttpRequest发送文件javascript代码到一个django view 我需要检测文件是否已发送或者是否发生了一些错误 我使用jquery编写了以下javascript 理想情况下 我想向用户显示文件未上传的错误消息
  • 作为 SQL Server 代理作业中的步骤运行时出现语法错误

    当您在 PowerShell 窗口中运行下面的脚本时 它运行得非常好 Import Csv DestinationFile ForEach Object Invoke Sqlcmd Database database ServerInsta
  • Code Golf:1x1 黑色像素

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 最近 我使用我最喜欢的图像编辑器制作了一个 1x1 黑色像素 当您想以便宜的方式在 HTML
  • 在组织模式下用标签组织笔记

    因此 我广泛使用 org mode 来满足我的日常 TODO 需求 我想知道我是否也可以有效地使用它来记笔记 我基本上想要的是用标签存储笔记 然后想通过标签搜索这些笔记 例如 如果我有这样的东西 Heading 1 Note 1 tag1
  • “APP”中无法使用 Apple Pay

    提前致谢 我在我的应用程序中使用 Apple Pay 我在 Apple 中注册了新的商家 ID 和来自支付网关的证书 通过使用此商家 ID 付款摘要表正在打开 但当我选择付款时 收到如下错误消息 Apple Pay 在 APP 中不可用 检
  • :before 和 ::before 有什么区别?

    我刚刚看到一个 CSS 代码 其中包括 before标签 我在看MDN https developer mozilla org en CSS before看看是什么 before是但我真的不明白 有人可以解释它是如何工作的吗 它会在我们通过
  • 找不到与给定名称匹配的资源 Theme.AppCompat.Light.NoActionBar

    我正在 Styles xml 文件中添加一些项目 但是 它给了我一个错误 这是我的代码
  • 如何在 mysql 中创建作业或事件

    我想创造一份工作mysql它在一天结束时运行 在该作业中我想更新表中的一些列值 假设我有 2 个表 其中有一列名为Status这是Pending or Accepted 为此 我想创建一个作业 在其中搜索两个表并设置Pending状态为Ac
  • ant 支持 java 9 addmods 选项

    我正在尝试使用 Java 9 编译我的 java 项目 我正在使用 java xml bind 包 所以我需要使用 addmods 选项 用于编译 Ant 1 9 7 似乎不支持这个新功能 ant 支持 Java 9 编译器的 addmod
  • Python - Networkx 搜索前驱节点 - 超出最大深度

    我正在使用 Python 中的 Networkx 库 用于图形管理 进行一个项目 并且在尝试实现我需要的内容时遇到了麻烦 我有一个有向图的集合 将特殊对象作为节点和与边关联的权重 问题是我需要从输出节点到输入节点遍历该图 对于每个节点 我必
  • ajax加载不同内容后如何刷新Select2下拉菜单?

    我在下拉菜单组合中使用 Select2 我有一份 国家 菜单和一份 州 省 菜单 根据所选国家 地区的不同 州 省 下拉列表的内容会发生变化 使用ajax从数据库中提取州 省 然后以如下方式显示 display output
  • 改进频率时间归一化/希尔伯特传输运行时间

    所以这是一个有点本质的问题 我有一个时间序列信号 它具有不均匀的响应谱 我需要将其白化 我使用频率时间归一化方法进行此白化 其中使用恒定的窄频带 最低频率端成员的约 1 4 逐步过滤两个频率端点之间的信号 然后 我找到表征每个窄带的包络 并
  • 无法启动 SSMS (SQL Server 2014 Express) - 许可证数据无效。需要重新安装

    我有一台运行 Windows Server 2012 RS 和 IIS 8 5 的新服务器 我已经安装了 SQL Server 2014 Express 但在 IIS 下的站点连接到 最初为占位符 数据库时遇到问题 为了让 Visual S
  • 我如何在 RxJava 中显式地发出 Flowable 完成的信号?

    我正在尝试创建一个Flowable这是包装一个Iterable 我将元素推送到我的Iterable定期但似乎完成事件是隐式的 我不知道如何表示处理已完成 例如在我的代码中 note that this code is written in
  • 信号编号 2 的名称

    我想知道是否有一个模块或编译指示定义了由system称呼 例如 use feature qw say use strict use warnings my cmd sleep 10 my res system cmd my signal r
  • 在 npm 脚本中运行批处理文件

    是否可以以及如何在 npm 命令中运行批处理脚本 我有一个有角度的项目 在package json文件 下scripts部分 我想定义一个 npm 命令来运行批处理脚本 我知道我可以使用关键字运行 shell 脚本bash e g star