• 请不要在回答技术问题时复制粘贴 AI 生成的内容
batyu
V2EX  ›  程序员

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

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

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

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

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