debugging Grails资产管道中不需要的javascript NODE_ENV标题行

ix0qys7i  于 2023-04-21  发布在  Java
关注(0)|答案(1)|浏览(113)

当使用'grails run-app'运行Grails 4应用程序时,Web服务器提供的每个javascript文件都以行开头:

var process = process || {env: {NODE_ENV: "development"}};

这一行不是javascript源代码的一部分,可能是由asset-pipeline插件生成的。这让我的开发环境(intellij和VSCode)变得一团糟,并破坏了断点处理。
有谁知道如何避免'grails run-app'生成这个标题行吗?
一些版本信息:

  • 简体中文
  • asset-pipeline-grails:3.2.4
  • java-version 11.0.9。

我已经使用'grails create-app'生成了'helloworld'应用程序,并使用'grails run-app'运行它,而不需要修改任何东西。

wz3gfoph

wz3gfoph1#

事实证明,你需要用你自己的管道覆盖默认的资产管道。你自己的管道将遗漏JsNodeInjectProcessor,这是罪魁祸首。
定义自己的管道涉及以下步骤:

  • 修改build.gradle,使所有资产管道模块在编译时可用
  • 基于-core包中的JsAssertFile创建MyJsAssetFile。在processors变量中,省略JsNodeInjectProcessor。
  • 创建一个文件main/resources/META-INF/asset-pipeline/asset.specs,去掉asset.pipeline.JsAssetFile并替换为MyJsAssetFile

这样做将导致javascript文件没有标题行,最重要的是,我的Intellij IDE能够调试我的grails应用程序中嵌入的javascript逻辑。

相关问题