收藏
回答

构建小程序的npm包时,如何忽略miniprogram_npm文件夹中的语法编译

框架类型 问题类型 操作系统 工具版本
小程序 需求 Windows 1.02.1812180

- 需求的场景描述(希望解决的问题)

构建小程序的npm包后,es6转es5功能也会对miniprogram_npm文件夹中的模块进行语法编译,如何设置忽略miniprogram_npm文件夹中的模块,因为一般来说,miniprogram_npm中的模块应该是不需要进行语法编译的。


- 希望提供的能力

如果可以,希望可以自定义配置babel转义文件的范围,比如可以通过.babelrc文件进行配置之类的。不然好像只能自己通过自定义预处理命令来自己配置babel了。

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

2 个回答

  • 小程序技术专员-june
    小程序技术专员-june
    2018-12-22

    目前还没有提供可配置的方式来忽略部分文件 es6 转 es5 的情况,目前对于现有的 js 包构建到一个文件时是不经过 babel 转义的,原本是 es6 的经过构建后就还是 es6 的,所以没有做区别对待。


    关于自定义转义文件之类的需求,我们考虑下后面要如何处理比较优雅。

    2018-12-22
    有用 1
    回复 5
    • 农村的师傅
      农村的师傅
      2018-12-24

      构建npm时确实是没有进行babel编译,但是后续我开发之后,编译整个小程序时,babel还是编译了构建npn后的代码。所以,期待后续更新。

      2018-12-24
      回复
    • 小程序技术专员-june
      小程序技术专员-june
      2018-12-24回复农村的师傅

      就是因为构建 npm 时不做 babel 转义,所以现在才会处理成编译整个小程序时对构建 npm 后的代码再做转义。如果原先安装 npm 包是 es6 语法,不做转义是有问题的。

      2018-12-24
      回复
    • 农村的师傅
      农村的师傅
      2018-12-24回复小程序技术专员-june

      原来如此,这么想倒是对的,有些包是es6语法,不转会出问题,而有些es5的包,比如lodash,它里面利用了全局对象获取Array,setTimeout这些方法,而小程序的包模块本身拿不到中window,self,global这些对象,而通过调用函数返回的this获取吧,又因为babel编译时,使用了严格模式导致返回undefined,所以lodash拿不到全局对象报错了,所以才有了最开始的提问。我就想可不可以通过配置忽略一些文件的babel编译。

      2018-12-24
      回复
    • 小程序技术专员-june
      小程序技术专员-june
      2018-12-24回复农村的师傅

      嗯,忽略编译这个我们考虑一下。


      对于一些为浏览器环境开发的包原本是不打算直接支持的:


      这些包都必须进行一定调整过才行。

      2018-12-24
      回复
    • 农村的师傅
      农村的师傅
      2018-12-24回复小程序技术专员-june

      好的,感谢您的耐心解答,谢谢。

      2018-12-24
      回复
  • 颜回
    颜回
    2020-08-18

    可以,解释不错,m

    2020-08-18
    有用
    回复
登录 后发表内容