Webpack可以配置为与Grails一起使用。关键是要让webpack在应用程序启动时生成它的包,并在可从GSP提供服务的目录中输出该包。如果使用Webpack,您不希望源资源管理器(即,React/ES6代码)位于资产管道中,而是希望将这些源文件保存在另一个目录中(例如src/webapp),并将Webpack配置为捆绑这些文件并将结果输出到资产管道(假设您使用的是AP)。
下面是的WebPack的示例配置:
var path = require('path');
module.exports = {
entry: {
index: './src/webapp/index.js'
},
output: {
path: './grails-app/assets/javascripts',
publicPath: '/assets/',
filename: 'bundle.js'
},
最后,实现了一体化的WebPack/Grails的启动,可以使用摇篮节点插件和附加的WebPack运行脚本,应用程序启动的自定义任务在您的build.gradle
(这是假设你有定义了一个名为“的WebPack”一个NPM脚本的WebPack运行)
assetCompile.dependsOn(['npmInstall', 'npm_run_webpack'])
请注意,如果你想在“观看”模式的WebPack运行,你需要做的从开始分开p Grails应用程序,以便该脚本可以持续运行(实际上在Gradle模式插件中支持此操作,但它目前已被破坏)。
请参阅此链接这种方法更深入的解释,有一个示例应用程序:http://grailsblog.objectcomputing.com/posts/2016/05/28/using-react-with-grails.html
也会检出Grails的3阵营简介:https://github.com/grails-profiles/react
它尚未发布,但应该在未来几天内。它利用这里和链接的文章中列出的相同方法。
感谢您的回答。这可能是一个愚蠢的问题,但是如果我还在使用Grails 2.x,可以做所有这些吗?你给我的链接是关于Grails 3的,我只是想确定一下。 – gjvatsalya
该配置文件仅适用于Grails 3,但只要您使用资产管道插件(Grails 2.4以后的默认版本,旧版本可用),您可以使用Grails 2中的博客文章中列出的相同步骤。另外,在我的答案中概述的Gradle任务在Grails 2中不起作用,但我相信您仍然可以将Gradle与Grails Gradle插件(https://github.com/grails/grails-gradle-plugin)一起使用到完成类似的行为(关键是你需要在Grails应用程序启动之前运行webpack)。 – ZacharyAKlein