You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle构建Spring项目Webpack失败问题求助

解决Windows下Gradle集成React+Webpack的构建失败问题

看起来你踩了Windows系统下Gradle Node插件执行跨平台脚本的坑——报错里的Shell语法(basedir=$(dirname...))被Node当成JavaScript解析,自然就炸了。这是因为Windows上node_modules/.bin/webpack是个Shell脚本,而Node.exe会直接把它当作JS文件执行,完全不识别Shell语法。下面给你几个靠谱的解决方案:

方案1:通过npm脚本间接调用Webpack(推荐,跨平台友好)

你的package.json里已经定义了webpack脚本,直接让Gradle调用npm run webpack就可以了,npm会自动处理Windows和类Unix系统的可执行文件差异。修改Build.Gradle里的webpack任务:

task webpack(type: NodeTask, dependsOn: 'npmInstall') {
    script = project.file('node_modules/npm/bin/npm-cli.js')
    args = ['run', 'webpack']
}

这样Node会执行npm的CLI,由npm去调用对应的webpack.cmd(Windows)或者webpack Shell脚本(Linux/macOS),完美规避跨平台问题。

方案2:直接指定Windows专属的webpack.cmd(仅限Windows开发)

如果你只在Windows环境下开发,也可以直接指定脚本为webpack.cmd:

task webpack(type: NodeTask, dependsOn: 'npmInstall') {
    script = project.file('node_modules/.bin/webpack.cmd')
}

但这个方法在Linux或macOS上会失效,所以优先选方案1。

额外检查点

  • 确认你的项目根目录下存在webpack.config.js,因为package.json里的脚本指定了--config ./webpack.config.js,如果这个文件缺失或有语法错误,也会导致执行失败。
  • 可以运行./gradlew webpack --info查看更详细的执行日志,确认Gradle到底执行了什么命令,方便排查问题。

内容的提问来源于stack exchange,提问作者KMann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:48:30