dantegg
V2EX  ›  Node.js

webpack 和后台结合的问题

  •  
  •   dantegg · Jun 21, 2016 · 12715 views
    This topic created in 3793 days ago, the information mentioned may be changed or developed.
    后台是 java/tomcat
    那整个项目部署时 webpack 打包好的项目应该如何和后台结合?
    起一个 webpack-dev-server 跑 webpack 的项目再起一个 tomcat 跑后台?
    (不一定是webpack-dev-server,意思就是同时起两个端口的两个服务,然后再通过webpack.config.js配置解决跨域问题?)
    新手小白求大大们解答
    18 replies  •  2016-06-22 14:34:16 +08:00
    murmur
    murmur
    Jun 21, 2016
    1
    webpack 生成 jsp 么?
    learnshare
    learnshare
    Jun 21, 2016❤️1
    2
    前后端分离的,服务器也分离好了,部署的时候用 Nginx 区分两个不同的服务
    magicdawn
    magicdawn
    Jun 21, 2016❤️1
    3
    webpack dev server

    dev server 开发啊 ... 完成之后, 只要不做 server side render. 前端开发结果不都是静态文件么...结合呗...
    hxtheone
    hxtheone
    Jun 21, 2016❤️1
    4
    生产环境部署的时候直接打包成一个 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
    crysislinux
    Jun 21, 2016❤️1
    5
    你是说前端代码怎么在开发时请求后端的 API 么?

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

    webpack-dev-server 也可以通过配置达到转发的目的,另外写的目的是为了更灵活一些,我可以自定义一些转发方案, webpack-dev-server 的 proxy 配置还蛮 tricky 的。。
    murmur
    murmur
    Jun 21, 2016❤️1
    6
    如果做好分布式部署的打算一开始就做 jsonp 或者设置 cross-region 么 干嘛要转发呢...
    lz 消失了?你这个项目什么架构的, java 只提供 json 数据前端纯静态?
    dantegg
    dantegg
    OP
    Jun 21, 2016
    7
    @murmur 没有消失,看了上面各层回复,在理解尝试中,
    java 提供 json ,没打算分布式,
    dantegg
    dantegg
    OP
    Jun 21, 2016
    8
    xieguanglei
    xieguanglei
    Jun 21, 2016
    9
    html 仍然由 express 输出,只引 dev-server 上的 js 资源(部署时换成 CDN 的),可以避免跨域。
    xieguanglei
    xieguanglei
    Jun 21, 2016
    10
    html 仍然由 java 输出。。。
    Tankpt
    Tankpt
    Jun 21, 2016 via iPhone
    11
    刚好也有类似的问题
    vagary
    vagary
    Jun 21, 2016
    12
    dev 的话 试试 dora 的 proxy
    dantegg
    dantegg
    OP
    Jun 21, 2016
    13
    @xieguanglei 可以理解为把 bundle.js 放到 cdn 上?
    TerranC
    TerranC
    Jun 21, 2016
    14
    可以压根就不用 webpack-dev-server 吧,感觉没什么关联两者, webpack 做点 build 的工作就好了,不比一定用那个 web server 啊
    xieguanglei
    xieguanglei
    Jun 21, 2016
    15
    bundle 放在哪里不影响跨域啊 @dantegg
    dantegg
    dantegg
    OP
    Jun 22, 2016
    16
    @xieguanglei 直接放到站点的 public 路径下呗
    Niphor
    Niphor
    Jun 22, 2016
    17
    那就别用 webpack 了啊 ,传统页面用这个感觉是自己找事
    dantegg
    dantegg
    OP
    Jun 22, 2016
    18
    @Niphor 嗯, html , css , js 就够了哦
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1104 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 23:06 · PVG 07:06 · LAX 15:06 · JFK 18:06
    ♥ Do have faith in what you're doing.