如何使用 package.json 脚本复制具有特定文件扩展名的文件

2024-01-19

我正在尝试将 npm 作为构建工具。

我遇到的一个障碍是我需要将 javascript 文件从一个文件夹复制到另一个文件夹。源文件夹包含打字稿文件、javascript 文件和地图文件,但在目标文件夹中我只对 javascript 文件感兴趣。

我不想为每个文件制作复制语句,但想复制所有 .js 文件。另外,我的源文件夹包含也包含 javascript 文件的子文件夹。这些也需要复制,并维护子文件夹结构。

我尝试过的是使用NCP https://github.com/AvianFlu/ncp有过滤器,但我无法让过滤器工作。我已经测试了过滤器中使用的正则表达式,它似乎工作正常。测试进行于正则表达式测试器 http://www.regextester.com用正则表达式.*\.js$和测试字符串像main.ts, main.js main.js.map等等,并且仅匹配 .js 字符串。

我的包 json 包含以下内容(缩写):

{
    "scripts": {
        "copy": "ncp scripts wwwroot/scripts --filter=\".*(\\\\.js$)\"" 
    }, 
    "devDependencies": { 
        "ncp": "2.0.0.0" 
    }
}

由于我的正则表达式位于字符串中的字符串中,因此我对其进行了双重转义。我还尝试过其他变体,例如:

--filter=/.*\.js$/g       - compilation error
--filter=/.*\\.js$/g      - no files copied
--filter=\".*\\.js$\"     - no files copied
--filter=\"/.*\\.js$/g\"  - no files copied
(no filter)               - all files copied

我绝对没有与 NCP 结婚。如果其他东西效果更好,那么我会使用它。

那么:如何在 package.json 脚本部分中仅将具有特定扩展名的文件复制到另一个文件夹?我很确定我忽略了一些显而易见的事情......


警告! cpx 软件包似乎已被放弃。 cpy-cli、copyfiles 和其他解决方案在此处的评论或下面的答案中列出。

cpx https://github.com/mysticatea/cpx可能是一个很好的替代品。

它有一个 CLI,允许您使用 glob 而不是正则表达式,可以保留目录树,并且在我写这篇文章时相对最新......

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

如何使用 package.json 脚本复制具有特定文件扩展名的文件 的相关文章

随机推荐

  • Rails 3 模型将某些列映射到不同的模型属性

    我有一个名为 DXFTACCTS 的旧旧表 并且创建了 Rails 模型 Account class Account lt ActiveRecord Base set table name DXFTACCTS end 问题是 DXFTACC
  • Python——函数不返回值

    我想编写一个函数来比较两个值 val1和val2 如果val1大于val2 则为a points添加1分 像A队一样 反之亦然 如果val2更大 则为b points添加1分 如果这两个值是偶数 我不会向 a points 或 b poin
  • NDK/JNI:识别当前线程

    在JNI本地方法中 有没有一种方法可以在不回调Java的情况下知道当前线程的ID 线程本地存储也可以工作 编辑 pthread h 存在于 NDK 包含文件夹中 有谁知道 Java 线程是否对应于 NDK 实现中的 POSIX 线程 您对哪
  • 在编译过程中如何查看解析树、中间代码、优化代码和汇编代码?

    我正在学习编译器课程 程序的编译遵循以下步骤 词法分析 语法分析 语义分析 中间代码生成 代码优化 目标代码生成 如何查看每个步骤的输出 例如我想在语法分析后查看解析树 我正在使用 GCC 编译器在 Linux 机器上编译程序 我们可以使用
  • Gitlab-CI 中的上游触发(又名管道依赖项)

    我似乎无法从这样的工具中找到最明显的 CI 功能 在另一个项目的管道完成后运行项目管道 你可以这样做trigger但仅适用于下游触发 这与您想要的相反 如果您有一个项目是 20 个其他项目的核心依赖项 而这些项目都需要重建 在这种情况下 您
  • 如何在 python 上解决 TISE 的简单边值问题

    我正在尝试求解无限势阱的 TISEV 0在间隔上 0 L 这个练习给我们提供了波函数及其导数的值0 is 0 1分别 这使我们能够使用scipy integrate odeint函数来解决给定能量值的问题 现在的任务是在给定波函数的进一步边
  • “The fi bug” 一个奇怪的 iOS 7 归因文本错误

    我在 iOS 7 中遇到了一个奇怪的错误 我称之为 fi bug 抽象的 两个字符 fi 被视为一个字符 解释 我创建了一个 UILabel 其中包含一个单词 作为属性文本 我创建了一个函数 单击时会将单词的一个字符着色为蓝色 即首先单击它
  • LR(0) 解析器如何离开状态 0?

    我已经阅读了维基百科的解释至少十几次 但我仍然对 LR 0 解析器如何离开状态 0 感到困惑 维基百科的例子及其解释说 http en wikipedia org wiki LR parser Parsing Steps 解析器从仅包含初始
  • 如何在java中找到像2^(10^9)这样的数字的幂[重复]

    这个问题在这里已经有答案了 Math pow 返回一个 double 值并且只接受 int 作为参数 BigInteger 作为没有查找 BigInteger BigInteger 的函数 通过循环来完成它需要很长时间 我还有什么想念的吗
  • toggleClass() 在 Angular 4 中不起作用

    我已经添加jQuery在脚本中并使用 import as from jquery 以及 我还添加了jQuery在 HTML 文件中 But my toggleClass 功能不起作用 当我检查控制台时 没有显示任何错误 它只是空的 下面是我
  • Xamarin 表单:可以在内容页上以编程方式在 Shell 应用程序中添加选项卡

    我通过谷歌查找但找不到结果 我有一个 Shell 设置 Xamarin 表单应用程序 尽管我没有完全使用它的功能 但 xaml 文件中有一个选项卡设置 我想知道我是否可以在 shellContent 下托管一个内容页面并从 contentP
  • 一次使用共享内存的多个实例

    为了在记录程序和显示程序 不能相同 之间传输视频流 我使用共享内存 为了同步访问 我组合了一个类 它包装了一个shared memory object 一个mapped region和一个interprocess sharable mute
  • Javascript“addEventListener”事件在页面加载时触发[重复]

    这个问题在这里已经有答案了 当我运行以下脚本时 该事件始终在页面加载时触发 我不确定我在这里做错了什么 我创建了元素 在 DOM 中找到它 然后附加一个侦听器 但它总是在页面加载时触发事件 而不是在单击元素时触发事件
  • Haskell 中附加词的用例

    我一直在阅读附加语 https en wikipedia org wiki Adjoint functors在过去的几天里 当我开始从理论角度理解它们的重要性时 我想知道人们如何以及为什么在 Haskell 中使用它们 Data Funct
  • Python 在正则表达式中将 f 字符串与 r 字符串和大括号组合

    给定一个单词 x 返回可以在该单词中找到的可能的 n 元语法 您可以根据需要修改n gram值 它位于 pat 变量的花括号中 默认 n 元语法值为 4 例如 对于单词 x x abcdef 可能的 4 克是 abcd bcde cdef
  • 在 AWS Beanstalk 或 EC2 实例中设置 Django 并支持 GeoDjango

    因此 我曾一度使用 Amazon Instance 2013 09 ami 35792c5c 通过 Beanstalk 进行此操作 当时 将此 ebextension 脚本放置在 ebextensions 中的存储库根目录中时效果非常好 0
  • 如何为 JavaScript Set 自定义对象相等性

    新ES 6 Harmony 推出新Set https developer mozilla org en US docs Web JavaScript Reference Global Objects Set目的 Set 使用的恒等算法类似于
  • 有用的替代控制结构?

    有时 当我编程时 我发现某些特定的控制结构对我非常有用 但在我的编程语言中不能直接使用 我认为我最常见的愿望是 短暂的一段时间 我不知道实际上该怎么称呼它 foo split while condition bar 这段代码的语义是foo
  • 将初始化数据传递给 Angular 2

    有谁知道如何将初始化数据传递到使用 Angular CLI 构建的 Angular 2 应用程序中 我需要传递当前从预先验证的 NET 后端获得的访问令牌 以便我可以调用 API 我尝试通过本地 Web api 端点执行此操作 但由于 Ob
  • 如何使用 package.json 脚本复制具有特定文件扩展名的文件

    我正在尝试将 npm 作为构建工具 我遇到的一个障碍是我需要将 javascript 文件从一个文件夹复制到另一个文件夹 源文件夹包含打字稿文件 javascript 文件和地图文件 但在目标文件夹中我只对 javascript 文件感兴趣