小程序
小游戏
企业微信
微信支付
扫描小程序码分享
- 需求的场景描述(希望解决的问题)
构建小程序的npm包后,es6转es5功能也会对miniprogram_npm文件夹中的模块进行语法编译,如何设置忽略miniprogram_npm文件夹中的模块,因为一般来说,miniprogram_npm中的模块应该是不需要进行语法编译的。
- 希望提供的能力
如果可以,希望可以自定义配置babel转义文件的范围,比如可以通过.babelrc文件进行配置之类的。不然好像只能自己通过自定义预处理命令来自己配置babel了。
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
目前还没有提供可配置的方式来忽略部分文件 es6 转 es5 的情况,目前对于现有的 js 包构建到一个文件时是不经过 babel 转义的,原本是 es6 的经过构建后就还是 es6 的,所以没有做区别对待。
关于自定义转义文件之类的需求,我们考虑下后面要如何处理比较优雅。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
构建npm时确实是没有进行babel编译,但是后续我开发之后,编译整个小程序时,babel还是编译了构建npn后的代码。所以,期待后续更新。
就是因为构建 npm 时不做 babel 转义,所以现在才会处理成编译整个小程序时对构建 npm 后的代码再做转义。如果原先安装 npm 包是 es6 语法,不做转义是有问题的。
原来如此,这么想倒是对的,有些包是es6语法,不转会出问题,而有些es5的包,比如lodash,它里面利用了全局对象获取Array,setTimeout这些方法,而小程序的包模块本身拿不到中window,self,global这些对象,而通过调用函数返回的this获取吧,又因为babel编译时,使用了严格模式导致返回undefined,所以lodash拿不到全局对象报错了,所以才有了最开始的提问。我就想可不可以通过配置忽略一些文件的babel编译。
嗯,忽略编译这个我们考虑一下。
对于一些为浏览器环境开发的包原本是不打算直接支持的:
这些包都必须进行一定调整过才行。
好的,感谢您的耐心解答,谢谢。
可以,解释不错,m
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
目前还没有提供可配置的方式来忽略部分文件 es6 转 es5 的情况,目前对于现有的 js 包构建到一个文件时是不经过 babel 转义的,原本是 es6 的经过构建后就还是 es6 的,所以没有做区别对待。
关于自定义转义文件之类的需求,我们考虑下后面要如何处理比较优雅。
构建npm时确实是没有进行babel编译,但是后续我开发之后,编译整个小程序时,babel还是编译了构建npn后的代码。所以,期待后续更新。
就是因为构建 npm 时不做 babel 转义,所以现在才会处理成编译整个小程序时对构建 npm 后的代码再做转义。如果原先安装 npm 包是 es6 语法,不做转义是有问题的。
原来如此,这么想倒是对的,有些包是es6语法,不转会出问题,而有些es5的包,比如lodash,它里面利用了全局对象获取Array,setTimeout这些方法,而小程序的包模块本身拿不到中window,self,global这些对象,而通过调用函数返回的this获取吧,又因为babel编译时,使用了严格模式导致返回undefined,所以lodash拿不到全局对象报错了,所以才有了最开始的提问。我就想可不可以通过配置忽略一些文件的babel编译。
嗯,忽略编译这个我们考虑一下。
对于一些为浏览器环境开发的包原本是不打算直接支持的:
这些包都必须进行一定调整过才行。
好的,感谢您的耐心解答,谢谢。
可以,解释不错,m