在 gradle-node-plugin 中配置 nodeModulesDir

2024-04-04

我尝试设置 npm 包的缓存。这是我的插件配置:

node {
  version = '4.5.0'
  npmVersion = '3.10.6'
  distBaseUrl = 'https://nodejs.org/dist'
  download = true

  workDir = file("$webAppSourceAbsolute/nodejs")

  nodeModulesDir = file("$webAppSourceAbsolute/")
}

这就是我的任务:

task npmCacheConfig(type: NpmTask) {
  description = "Configure the NPM cache"
  outputs.upToDateWhen {
    false
  }
  def npmCacheDir = "${gradle.getGradleUserHomeDir()}/caches/npm"
  outputs.files file(npmCacheDir)
  args = ['config', 'set', 'cache', npmCacheDir]
}

但是当我运行这个任务时,我得到了一个错误:

:arm-bpa:nodeSetup UP-TO-DATE
:arm-bpa:npmCacheConfig FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':myModule:npmCacheConfig'.
> 
  Could not run npm command - local npm not found but requested in gradle node configuration.
  A common reason for this is an npm-shrinkwrap.json file is present and un-installs npm.
  To resolve this, add npm with version '3.10.6' to your package.json.

我可以这样修复它:

npmCacheConfig.doFirst {
  this.project.node.nodeModulesDir = file("$webAppSourceAbsolute/nodejs/node-v4.5.0-linux-x64/lib/")
}

npmCacheConfig.doLast {
  this.project.node.nodeModulesDir = file("$webAppSourceAbsolute/")
}

有没有办法在不进行硬编码的情况下修复它?


我是这样修复的:

npmCacheConfig.doFirst {
    def nodeJsDirectory = null
    def nodeVersion = this.project.node.version

    file("$webAppSourceAbsolute/nodejs/").traverse(
            type: FileType.DIRECTORIES,
            nameFilter: ~"^node-v$nodeVersion.*",
            postDir: {
                return FileVisitResult.TERMINATE
            }
    ) {
        nodeJsDirectory = it
    }

    if (nodeJsDirectory != null) {
        this.project.node.nodeModulesDir = file("$nodeJsDirectory/lib/")
    } else {
        throw new IllegalStateException("nodejs is not installed")
    }
}


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

在 gradle-node-plugin 中配置 nodeModulesDir 的相关文章

  • 如何模拟 typeorm 连接

    在集成测试中 我使用以下代码片段来创建连接 import Connection createConnection from typeorm ts ignore import options from ormconfig js export
  • 创建猫鼬模型时无法读取未定义的属性“用户”

    我正在尝试创建一个猫鼬模型并使用它从 mongodb 获取数据 但出现异常 我的 package json 中的猫鼬版本是 猫鼬 4 5 5 TypeError Cannot read property users of undefined
  • 构建配置变量。错误:找不到符号

    在项目中我有几个flavors 一些buildTypes和几个folders用于组合 构建组合 文件夹结构 在每个文件夹中我都有自定义Application class AndroidManifest注册这个Application clas
  • 使用 AWS Lambda 从 AWS S3 读取并提取巨大的 zip 文件

    我正在开发数据管理应用程序 客户可以上传zip file approx 250 MB 与多个text files approx 1500 MB on AWS S3 但由于记忆有限aws lamda 最大 1536MB 大小 我能够提取 50
  • 如何从控制器返回 PDF 文件

    我正在尝试使用 NestJs 从控制器端点返回 PDF 文件 未设置时Content typeheader 返回的数据getDocumentFile 很好地返回给用户 然而 当我添加标头时 我得到的返回似乎是某种奇怪形式的 GUID 响应总
  • Visual Studio 代码断点在使用 TypeScript 的 Node.js 上不起作用

    我尝试了很多解决方案 但没有人适合我 代码执行 但我无法放置断点并调试它 请你帮助我好吗 我尝试过以下 VSCode 配置脚本 type node request launch name Typescript Node JS program
  • NodeJs 控制台中的 GET /bla - - ms - - 是什么意思?

    当我进入页面时 bla在我的 NodeJS 应用程序中 控制台打印出 GET bla ms 用文字来说 为了更容易谷歌搜索 dash dash ms dash dash 这是什么意思 这是输出morgan https github com
  • 我应该如何在http post请求的请求负载中传递json数据

    我想知道如何在有效负载中传递 json 请求 例如 name test value test var post data var post options host this host path path method POST heade
  • Gradle 构建无法解析生成的类

    我刚刚将 Android Studio 从 1 5 更新到 2 2 1 Gradle 也是如此 我有一个项目 它使用注释处理器框架 由我制作 来执行类似 Dagger 的依赖注入 这在更新之前工作得很好 但现在 Gradle 无法解析生成的
  • nodejs mocha suite 未定义错误

    我正在尝试使用摩卡运行一些测试 但似乎无法克服这个错误 E tdd nodejs cart gt mocha cart test js node js 201 throw e process nextTick error or err Re
  • socket.io 作为客户端

    有什么方法可以将socketio作为客户端运行 不是浏览器 而是nodejs脚本 我需要将数据从服务器广播到一些客户端 浏览器 和另一台linux机器 仅运行nodejs来获取变量 没有浏览器 欢迎任何想法 Regards github上有
  • Nodejs 一个接一个地运行异步函数

    我是 JS nodejs 的新手 所以如果我不能提出切中要害的问题 请原谅我 所以基本上 如果我有两个异步函数 async function init async function main 如何确保在 init 完成其异步请求后调用 ma
  • 无法使用 docker build 运行 gradle 包装器

    我有这个小构建 FROM eclipse temurin 17 jdk as build java COPY java project root project WORKDIR root project RUN chmod x gradle
  • Android Studio/Gradle 测试文件夹命名约定

    我看过很多在 Android Studio Gradle 项目上进行测试的教程和帮助项目 我很好奇测试文件夹的命名约定 我见过两个类似的命名 test and androidTest 有什么真正的区别吗 IDE Gradle 框架是否以不同
  • 如何在 Gradle 构建脚本中使用 java 库?

    我需要在 Gradle 脚本中使用 Apache Commons 那么我需要在哪里添加依赖项以使其可用 我的 Android 项目中不需要它 但只在 gradle 脚本中需要 您需要添加依赖项buildscript部分如下 buildscr
  • 升级 Grails 应用程序时compileAssets 失败

    我有一个运行版本 3 3 的 Grails 应用程序 我最近升级到版本4 0 3 我通常升级的方式 据我所知可能不是最好的方式 是将我的环境升级到新的 Grails 版本 然后创建一个全新的 Grails 项目 我正在使用 IntelliJ
  • 护照:登录和帐户注册的不同重定向

    我在我的应用程序中使用护照模块 github身份验证 我想根据操作进行重定向 我检查这是否只是正常登录或者用户是否第一次登录 passport use new GitHubStrategy clientID conf github app
  • Cloud Functions for Firebase - 通过 Nodejs/Cloud Function 将多个 PDF 合并为一个

    我遇到了一个问题 我试图通过云功能合并一堆 PDF 然后将合并的 PDF 下载到用户的计算机上 我的提供程序中有一个函数 它调用云函数并传递指向 pdf 的 URL 数组 如下所示 mergePDFs pdfs Create array o
  • Node.js 中的异步或步骤

    我无法让我的异步代码与 node js 一起使用 尝试异步和步骤库 代码仅返回第一个函数 似乎没有执行其余函数 我究竟做错了什么 thanks var step require step step function f1 console l
  • 带有 npm 启动脚本的 Nodejs 应用程序

    我对nodejs很陌生 在我的docker化环境中 我想为nodejs应用程序提供appdynamics支持 这要求每个应用程序都要求将以下内容作为其应用程序的第一行 require appdynamics profile controll

随机推荐

  • 是否有一种有效的算法来进行有限数量的整数分区?

    我必须创建一个接受两个整数的方法 让它们成为n and m 并返回有多少种求和方法m得到正数n 例如 像这样的方法调用partition 6 2 应该返回 3 因为有 3 种可能的方法 他们是5 1 4 2 and 3 3 顺便一提 4 2
  • 如何在并行进程(python)中将项目追加到列表中?

    这是我正在使用的更复杂代码的一个非常简单的版本 问题是我想将 method 函数中计算的项目附加到稍后可以显示的某个列表中 但是 当运行此代码时 列表对象为空 而结果数组已满 import multiprocessing as mp glo
  • Chrome 中意外的令牌默认值 ({}).default

    我收到错误 SyntaxError 意外的默认令牌 在 Chrome Opera 中的任何对象上获取或设置属性 默认 时 default 有人可以解释为什么会发生这种情况吗 upd 请大家注意 这对 FF 没有意义 因此在测试时您可能会错过
  • 选择未聚合的变量,功能上依赖于 GROUPing 变量

    背景 我正在一个非常受限的 T SQL 环境中工作 其中只能定义一个对象的 主体 VIEW 大概是 in CREATE VIEW My View AS 在引擎盖下 这是我的 VERSION https learn microsoft com
  • 如何获取多选框的所有选定值?

    我有一个
  • 从列表 PySpark 的列表中创建单行数据框

    我有一个这样的数据data 1 1 1 2 1 3 1 4 1 5 1 6 我想创建一个 PySpark 数据框 我已经使用了 dataframe SQLContext createDataFrame data features 但我总是得
  • 共享主机上的 403 禁止 Laravel

    我有一个共享主机 我正在尝试让我的 laravel 项目在其上运行 我正在使用 voyager 进行管理面板 我将我的应用程序公共文件夹放在 public html 中 并将项目的其余部分放在 public html 的同一级别上 所以它看
  • 从代理服务器后面调用 Web 服务

    我需要在将使用 Web 服务 XML SOAP 服务 的应用程序 C 中添加功能 现在 该应用程序可以 并且大部分 在具有代理服务器的企业环境中使用 我了解 SOAP 服务使用 HTTP 协议 因此应该使用端口 80 该端口通常保持打开状态
  • 如何在这个线性模型中强制删除截距或等效项?

    考虑下表 DB lt data frame Y rnorm 6 X1 c T T F T F F X2 c T F T F T T Y X1 X2 1 1 8376852 TRUE TRUE 2 2 1173739 TRUE FALSE 3
  • Laravel Model->save() 返回 false 但没有错误

    通常当我打电话时Model gt save 它成功地在数据库中创建了新记录 我正在尝试调试没有发生任何事情的情况Model gt save 返回假 我怎样才能知道发生了什么 user new User user gt fields exam
  • Confluence Schema 注册表持久化

    我希望即使服务器重新启动也能够保留具有固定 id 的模式 是否可以将架构保留在架构注册表中 以便在服务器崩溃后使它们具有相同的 id 否则 当模式注册服务器启动时 是否可以对具有固定 id 的模式进行硬编码 这就是模式注册的目的 模式有一个
  • Whatsapp消息自动回复方法

    我在play store上看到很少有应用程序支持WhatsApp的自动回复 我在网上搜索了方法 但我找到的只是这段代码 Uri uri Uri parse smsto 99 Intent i new Intent Intent ACTION
  • Jquery 延迟加载回调

    我目前正在使用Jquery 延迟加载 http www appelsiini net projects lazyload我想知道当我的容器中的所有图像结束加载时 当延迟加载发挥了所有魔力时 是否有一种方法可以进行回调 原因是我正在使用jSc
  • 如何将虚拟机组合到 Aurelia 验证渲染器中的视图中

    我正在尝试使用 aurelia validation 插件对表单执行验证 我正在创建一个自定义验证渲染器 它将更改输入框的颜色并在框旁边放置一个图标 单击或悬停该图标时 会出现一条弹出消息 其中显示实际的错误消息 目前 我正在渲染器中手动渲
  • 在 django 中处理动态 MultipleChoiceField

    到目前为止我看到的所有答案都让我感到困惑 我制作了一个根据传入的参数以及数据库中存储的问题动态构建的表单 这一切都工作正常 注意 它不是一个 ModelForm 只是一个 Form 现在我正在尝试保存用户的响应 我如何迭代他们提交的数据以便
  • SwiftUI:仅在 iOS 14+ 上使用“accessibilityIdentifier”

    给出以下代码 struct CopyButtonStyle ButtonStyle init func makeBody configuration Configuration gt some View let copyIconSize C
  • SQL 比较每小时总订单并删除当前库存可能吗?

    不确定是否可以单独使用 sql 来完成此操作 但我宁愿询问然后向流程添加另一个步骤 比如说我有一组虚拟订单 Supplier Destination Req Time Prd Code Prd Description Qty A B 01
  • 什么是日志记录?如何使用 Apache Commons 日志记录?

    Web 应用程序服务器希望记录哪些信息 为什么 据我了解 org apache commons logging Log 是一个抽象了其他Logging类提供的功能的接口 这同样适用于接口LogFactory 我试图理解的代码有 Log au
  • jQuery Mobile:页面事件触发的顺序是什么?

    我必须快速构建应用程序的原型 并且我想确切地知道在哪里插入各种应用程序逻辑 您能否迭代使用 PhoneGap 和 jQueryMobile 时的事件及其触发顺序 如果能够清楚地了解以下事件 顺序 那就太好了 A 当您第一次打开应用程序时 B
  • 在 gradle-node-plugin 中配置 nodeModulesDir

    我尝试设置 npm 包的缓存 这是我的插件配置 node version 4 5 0 npmVersion 3 10 6 distBaseUrl https nodejs org dist download true workDir fil