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