V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
JayLin1011
V2EX  ›  Vue.js

请教 webpack/vue 大神,有关 vue-cli 中 node 核心库的使用疑惑?

  •  
  •   JayLin1011 ·
    jay-lin1110 · Jul 21, 2020 · 2673 views
    This topic created in 2107 days ago, the information mentioned may be changed or developed.

    为什么在 vue-cli(webpack) 中 node 的部分核心模块无法使用,个人猜测是代码运行时是 node 或浏览器的区别或 node 版本的问题,但没有得到具体原因。

    我可以在 vue-cli 构建的项目中使用 path.basename() 方法,却无法使用 path.parse(),因为该方法是 undefined 。

    即使我设置了 webpack 的 node 选项的 path 的为 !!1mock 也无法顺利使用 path.parse() 方法,path 作为核心库部分 API 无法正常工作让我很疑惑。

    想知道是 webpack 内部的 NodeStuffPlugin 插件和 NodeSourcePlugin 插件的影响,还是 node-libs-browser 不支持 Node.js 核心库 的相关 polyfill,同时有没有办法解决此问题。

    4 replies    2020-07-23 23:29:53 +08:00
    ChanKc
        1
    ChanKc  
       Jul 22, 2020 via Android
    浏览器应该没办法 polyfill path 的很多方法
    构建和 ssr 阶段可以用 node 的模块
    JayLin1011
        2
    JayLin1011  
    OP
       Jul 22, 2020
    @ChanKc 嗯嗯,我选择了正则作为路径解析的备选方案,只是不明白 weboack 对于 node 核心库和浏览器环境的兼容关系的处理和配置,目前来看确实没有对应的 mock lib 。
    sodatea
        3
    sodatea  
       Jul 23, 2020
    node-libs-browser 里引用的 path-browserify 版本非常老,没有 parse 这个方法
    https://github.com/browserify/path-browserify/blob/v0.0.1/index.js
    JayLin1011
        4
    JayLin1011  
    OP
       Jul 23, 2020
    @sodatea 好的呢。估计轮子缔造者们都是正则起手,基于兼容性考虑不会太依赖一些工具模块。虽然新的 node 也在贴近浏览器生态,但并没必要更新。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1026 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 22:01 · PVG 06:01 · LAX 15:01 · JFK 18:01
    ♥ Do have faith in what you're doing.