收藏
回答

如何引入NPM包内的路径文件?比如three-platformize的loads


最后一次编辑于  2022-08-10
回答关注问题邀请回答
收藏

2 个回答

  • 白夜.
    白夜.
    2022-08-10

    首先小程序是不能直接引用npm包的,需要构建npm变成miniprogram_npm,如果你想引用

    这个目录下的loader,则需要把对应npm包的目录复制到miniprogram_npm里面,小程序自带的构建npm可能构建不了你想要的东西

    参考小程序npm包构建原理https://developers.weixin.qq.com/miniprogram/dev/devtools/npm.html#%E5%8E%9F%E7%90%86%E4%BB%8B%E7%BB%8D

    另外there js有小程序兼容版本可能你用得上

    https://github.com/wechat-miniprogram/threejs-miniprogram

    2022-08-10
    有用 2
    回复 5
    • 偏执狂
      偏执狂
      2022-08-10
      也尝试过复制,但是这个load有许多其他依赖在npm包里
      其实目前的项目使用的就是threejs-miniprogram,但是发现threejs-miniprogram提供的功能不完整,所以才想尝试换一个
      2022-08-10
      回复
    • 偏执狂
      偏执狂
      2022-08-10
      以及为什么从github上下载的示例代码是可以引用的
      2022-08-10
      回复
    • 白夜.
      白夜.
      2022-08-10回复偏执狂
      github上下载的示例代码,你指的应该是https://github.com/deepkolos/three-platformize-demo这个吧?
      他这个demo可以引用是因为他这个不是微信小程序,他所导入的是普通的npm,而在微信小程序中,导入的是miniprogram_npm里面的文件,如你刚刚的截图所示,miniprogram_npm文件里面并没有对应的路径及文件,所以引用失败
      2022-08-10
      1
      回复
    • 白夜.
      白夜.
      2022-08-10回复白夜.
      书接上回,根据此项目提供的(https://github.com/deepkolos/three-platformize-demo-wechat-simple) demo来看,他们可以引用成功的原因是因为他这个demo是用的ts写的所以能找得到路径(图2),你截图(图1)里面应该是用的js,小程序里面js都会走的miniprogram_npm的路径所以找不到,另外他的demo使用了rollupjs来打包他的ts文件,最终在根目录生成了chunks目录文件夹,里面是他这个插件的实例(图3),而Demo中小程序实际引用的也是他chunks目录文件夹下的js(图4)
      2022-08-10
      1
      回复
    • 偏执狂
      偏执狂
      2022-08-10回复白夜.
      非常感谢,已经能够实现模型渲染,对rollupjs的了解太少
      2022-08-10
      回复
  • 张先生
    张先生
    2022-10-12

    threejs-platformize要是觉得不好用,用ThreeX

    https://gitee.com/threejs/three-weixin


    2022-10-12
    有用 1
    回复
登录 后发表内容