收藏
回答

小程序开发者工具中构建npm是什么意思?

1.在小程序开发过程当中,引入了外部UI库,使用npm导入时,还需要在工具中点击构建npm。

2.我在云函数中使用npm,导入了一个操控文档的库,但是不用点击构建npm也能正常使用。

问题:所以这个构建npm到底是什么意思,有什么作用?

回答关注问题邀请回答
收藏

1 个回答

  • Jation
    Jation
    2020-04-14

    参考 https://developers.weixin.qq.com/miniprogram/dev/devtools/npm.html 中的原理介绍

    总的来说是因为js运行时的不一样

    构建npm的过程,是为了让原始的npm包(放在node_modules里的)能够在小程序的运行时上跑起来:

    1. 类似nodejs的require路径检查,小程序在require时,如果不是绝对路径或者以`.`开头的绝对路径,是会尝试去`miniprogram_npm`搜索的,构建npm的工作之一就是把`node_modules`里的东西copy到`miniprogram_npm`
    2. 小程序是不能`require(变量)`的、不支持`require(addon)`、不支持reuqire(某些node原生模块比如fs,http)`的、构建npm需要做一下检查,
    3. 再其次构建npm要给每个被构建npm包打sourcemap
    4. 构建npm还会针对本身就是小程序npm包(参考“原理介绍”里的`testComp`)简单拷贝`miniprogram_dist`


    而,云函数中使用npm可以直接使用,是因为云函数运行时就是一个node环境,所以不需要做“构建”

    2020-04-14
    有用 1
    回复 2
    • 鸡蛋_鸭🦆
      鸡蛋_鸭🦆
      2020-04-14
      谢谢解答,理解了!
      2020-04-14
      回复
    • 坤坤
      坤坤
      2020-05-30
      请问在本地设置里面是否勾选“使用 npm 模块”的区别是什么?我发现不勾选这个,依旧是可以正常使用模块的。谢谢了!
      2020-05-30
      回复
登录 后发表内容
问题标签