各位老哥,传统 PHP 电商网站, JS 部分如何实现模块化? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
batyu
V2EX    程序员

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

  •  
  •   batyu 2020-06-18 17:05:53 +08:00 3460 次点击
    这是一个创建于 1941 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    @zhuweiyou 感谢!这个第一次了解到,我去看看
    TimPeake
        28
    TimPeake  
       2020-06-19 11:13:20 +08:00
    其实 jq+require+backbone+其他任何 jqUI 框架 这种模式就挺好的 之前单位老项目 模块很好
    qq1340691923
        29
    qq1340691923  
       2020-06-19 12:10:20 +08:00
    nuxt,nest 就可以服务端渲染
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     890 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 19:45 PVG 03:45 LAX 12:45 JFK 15:45
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86