webpack 和后台结合的问题

2016-06-21 09:28:08 +08:00
 dantegg
后台是 java/tomcat
那整个项目部署时 webpack 打包好的项目应该如何和后台结合?
起一个 webpack-dev-server 跑 webpack 的项目再起一个 tomcat 跑后台?
(不一定是webpack-dev-server,意思就是同时起两个端口的两个服务,然后再通过webpack.config.js配置解决跨域问题?)
新手小白求大大们解答
11394 次点击
所在节点    Node.js
18 条回复
murmur
2016-06-21 09:35:25 +08:00
webpack 生成 jsp 么?
learnshare
2016-06-21 10:04:55 +08:00
前后端分离的,服务器也分离好了,部署的时候用 Nginx 区分两个不同的服务
magicdawn
2016-06-21 10:17:36 +08:00
webpack dev server

dev server 开发啊 ... 完成之后, 只要不做 server side render. 前端开发结果不都是静态文件么...结合呗...
hxtheone
2016-06-21 10:21:58 +08:00
生产环境部署的时候直接打包成一个 js 文件了吧, 直接放到站点的 public 目录或者 cdn 上

开发的时候, 官方的建议就是你想的那样, webpack-dev-server 和本来的后端 server 各起一个

You may want to run a backend server or a mock of it in development. You should not use the webpack-dev-server as a backend. Its only purpose is to serve static (webpacked) assets.

You can run two servers side-by-side: The webpack-dev-server and your backend server.

ref: https://webpack.github.io/docs/webpack-dev-server.html#combining-with-an-existing-server
crysislinux
2016-06-21 10:26:30 +08:00
你是说前端代码怎么在开发时请求后端的 API 么?

这种情况我一般是用 webpack-dev-middleware 新建了一个 express 应用,前端发到 webpack 所在 express 应用的请求会被转发到后端所在的端口。简单的说就是: localhost:3001/api/users 会被转到 localhost:3002/api/users 。

webpack-dev-server 也可以通过配置达到转发的目的,另外写的目的是为了更灵活一些,我可以自定义一些转发方案, webpack-dev-server 的 proxy 配置还蛮 tricky 的。。
murmur
2016-06-21 10:33:48 +08:00
如果做好分布式部署的打算一开始就做 jsonp 或者设置 cross-region 么 干嘛要转发呢...
lz 消失了?你这个项目什么架构的, java 只提供 json 数据前端纯静态?
dantegg
2016-06-21 10:50:43 +08:00
@murmur 没有消失,看了上面各层回复,在理解尝试中,
java 提供 json ,没打算分布式,
dantegg
2016-06-21 10:51:21 +08:00
xieguanglei
2016-06-21 11:02:47 +08:00
html 仍然由 express 输出,只引 dev-server 上的 js 资源(部署时换成 CDN 的),可以避免跨域。
xieguanglei
2016-06-21 11:03:28 +08:00
html 仍然由 java 输出。。。
Tankpt
2016-06-21 12:04:22 +08:00
刚好也有类似的问题
vagary
2016-06-21 12:41:36 +08:00
dev 的话 试试 dora 的 proxy
dantegg
2016-06-21 13:58:26 +08:00
@xieguanglei 可以理解为把 bundle.js 放到 cdn 上?
TerranC
2016-06-21 14:42:51 +08:00
可以压根就不用 webpack-dev-server 吧,感觉没什么关联两者, webpack 做点 build 的工作就好了,不比一定用那个 web server 啊
xieguanglei
2016-06-21 16:50:30 +08:00
bundle 放在哪里不影响跨域啊 @dantegg
dantegg
2016-06-22 00:05:07 +08:00
@xieguanglei 直接放到站点的 public 路径下呗
Niphor
2016-06-22 13:33:51 +08:00
那就别用 webpack 了啊 ,传统页面用这个感觉是自己找事
dantegg
2016-06-22 14:34:16 +08:00
@Niphor 嗯, html , css , js 就够了哦

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/287206

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX