V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
batyu
V2EX  ›  程序员

各位老哥,传统 PHP 电商网站, JS 部分如何实现模块化?

  •  
  •   batyu · Jun 18, 2020 · 3810 views
    This topic created in 2144 days ago, the information mentioned may be changed or developed.

    现在的架构是 laravel+jquery+bootstrap,JS 的代码维护起来有点蛋疼,怎么改造成模块化的方式?

    seajs 已经很久不更新了,没有太多选用的想法。

    requirejs 情况也差不多,除了这两个外,还有其他方案吗

    29 replies    2020-06-19 12:10:20 +08:00
    batyu
        1
    batyu  
    OP
       Jun 18, 2020
    补充一下,页面用的 laravel 内置的 blade 模板引擎
    chenz197
        2
    chenz197  
       Jun 18, 2020
    你们是套模板开发吗..
    chenz197
        3
    chenz197  
       Jun 18, 2020
    blade.. 之前一家公司也是用这个 很尴尬
    batyu
        4
    batyu  
    OP
       Jun 18, 2020
    @chenz197 不是,用的 laravel 框架,东西都自己写的
    mlxj
        5
    mlxj  
       Jun 18, 2020
    重构
    TangMonk
        6
    TangMonk  
       Jun 18, 2020
    用 browserify + gulp 可以试试
    batyu
        7
    batyu  
    OP
       Jun 18, 2020
    @mlxj 是想着重构,目前人员不够,vue 或者 react 不好做 SEO,这种传统架构应该如何实现前端模块化呢
    batyu
        8
    batyu  
    OP
       Jun 18, 2020
    @TangMonk 感谢,我去看看可行性
    wangyzj
        9
    wangyzj  
       Jun 18, 2020
    一定要动吗?
    jquery 挺好的
    batyu
        10
    batyu  
    OP
       Jun 18, 2020
    @wangyzj 没打算弃用 JQUERY,只是想着能不能基于 JQUERY 来做模块化。平台实现了两套购物逻辑:登录状态和未登录状态,很多代码都混在一起,挺乱的,维护起来也别扭
    dfourc
        11
    dfourc  
       Jun 18, 2020
    @TangMonk 打包的 bundle 不会太大吗,requirejs 现在没必要更新了吧
    batyu
        12
    batyu  
    OP
       Jun 18, 2020
    @galikeoy 没有用过 requirejs,所以暂时作为备选,如果最终没有更好的方案,应该就用它了
    baxtergu
        13
    baxtergu  
       Jun 18, 2020
    引入 requirejs+backbone+handlebars 模板做模块化改造成本小一点,但是要看原先的数据渲染是放在服务端做的还是前端做的,要是服务端做的话改造还是比较大
    batyu
        14
    batyu  
    OP
       Jun 18, 2020
    @baxtergu 这是走前后端分离的路子了吧?目前是服务端渲染的,确实改造太大
    baxtergu
        15
    baxtergu  
       Jun 18, 2020
    @batyu 是的,可能也就是技术栈相近一点改造成本没那么高。或者也可以试试新框架做渐进式的改造,慢慢改,这点上面 vue 做的比 react 好。
    coderabbit
        16
    coderabbit  
       Jun 18, 2020
    体量不大放弃 pc 端吧。维护也累!
    zjsxwc
        17
    zjsxwc  
       Jun 18, 2020 via Android
    requirejs 吧,至少 npm 包都兼容 amd 所以可以直接拿来用
    lneoi
        18
    lneoi  
       Jun 18, 2020
    后端渲染 模块化不就是由后端负责,输出时判断一下选择性输出就行了?
    TangMonk
        19
    TangMonk  
       Jun 18, 2020
    @galikeoy #11 不会很大啊
    jinwyp
        20
    jinwyp  
       Jun 18, 2020
    看了以下日期 是 2020 年, 直接用 es6 的模块啊,webpack 打包 可以不用 vue react 没问题啊
    ccraohng
        21
    ccraohng  
       Jun 18, 2020 via Android
    wrbpack 多入口打包 资源信息注入
    batyu
        22
    batyu  
    OP
       Jun 18, 2020
    @lneoi 这样貌似更复杂化了

    @jinwyp
    @ccraohng 非前后端分离的项目,JS+PHP+PHP 模板引擎。也能引入 ES6 、webpack ?
    neutrino
        23
    neutrino  
       Jun 19, 2020 via Android
    webpack 是可以的,js src 那坨放在 resource 里,用 laravel mix 生成 public js img 等,然后在 blade 中用 asset 引入。最后每个模板文件的最后自己写页面特意的 js 就可以了。
    qq1340691923
        24
    qq1340691923  
       Jun 19, 2020
    上 nuxt 或者 nest 啊
    zhuweiyou
        25
    zhuweiyou  
       Jun 19, 2020
    system.js
    chenz197
        26
    chenz197  
       Jun 19, 2020
    我知道呀 就是 laravel , 按你描述的就是文件都是 xxx.blade.php 这种吧
    batyu
        27
    batyu  
    OP
       Jun 19, 2020
    @neutrino 这个只是用到 laravel mix 的混压缩吧,没有模块化的东西在里面

    @qq1340691923 服务端渲染……暂时还没打算动 PHP

    @zhuweiyou 感谢!这个第一次了解到,我去看看
    TimPeake
        28
    TimPeake  
       Jun 19, 2020
    其实 jq+require+backbone+其他任何 jqUI 框架 这种模式就挺好的 之前单位老项目 模块很好
    qq1340691923
        29
    qq1340691923  
       Jun 19, 2020
    nuxt,nest 就可以服务端渲染
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2479 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 79ms · UTC 08:42 · PVG 16:42 · LAX 01:42 · JFK 04:42
    ♥ Do have faith in what you're doing.