是否可以将React(使用Webpack)与Grails集成?

时间:2016-10-31 18:46:57

标签: grails reactjs webpack

我一直在考虑使用React作为Grails应用程序的前端,但是我在开始时遇到了一些麻烦。

到目前为止,我已经习惯在Webpack的帮助下使用Node / NPM编写一个React应用程序,这非常简单,因为有大量的文档可供使用。

但是,我很难找到任何与Reils无缝集成React的东西 理想情况下,我会做grails run-app,它应该照顾一切。我不希望其他团队成员担心启动两个不同的服务器或类似的东西。

如果有人事先这样做,请告诉我。

2 个答案:

答案 0 :(得分:5)

可以将Webpack配置为与Grails一起使用。关键是让webpack在应用程序启动时生成其捆绑包,并将捆绑包输出到可以从GSP提供的目录中。如果您使用Webpack,则不希望资源管道中包含源JavaScript(即,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启动,您可以使用Gradle节点插件并将webpack运行脚本附加到build.gradle中的自定义任务中的应用程序启动(假设您有一个npm脚本名为" webpack"定义为运行webpack)

assetCompile.dependsOn(['npmInstall', 'npm_run_webpack'])

请注意,如果您想在"中观看"模式,您需要单独启动Grails应用程序,以便该脚本可以连续运行(在Gradle模式插件中实际上支持此功能,但它当前已损坏)。

请参阅此链接,了解此方法的更深入说明,并附带示例应用程序:http://grailsblog.objectcomputing.com/posts/2016/05/28/using-react-with-grails.html

同时查看Grails 3的React配置文件:https://github.com/grails-profiles/react

尚未发布,但应在未来几天内发布。它使用了此处和链接帖子中概述的相同方法。

答案 1 :(得分:0)

您可以使用npm's scripts feature将启动开发环境所需的所有步骤合并为一个命令,例如:

// package.json

{
    ...
    "scripts": {
        "start": "npm start-grails & npm start-react",
        "start-grails": "grails run-app",
        "start-react": "node server.js"
    },
    ...
}

现在只需要一个简单的npm start即可启动所有相关应用程序。