babel插件的使用问题

标签: Babel 分类: Nodejs 创建时间:2019-08-08 02:46:52 更新时间:2024-11-15 10:49:44

1.Cannot read property ‘bindings’ of null

在webpack中需要用到babel插件,在gulp中为了转义es6语法也需要babel插件。今天在执行一个gulp任务时,死活过不去。

1
2
3
4
5
6
gulp.task('minify-js', function() {
return gulp.src('./public/**/*.js')
.pipe(babel({presets: ['env']}))
.pipe(uglify())
.pipe(gulp.dest('./public'));
});

代码也很简单,就是把public中的js代码先把es6语法使用babel转成es5语法,然后再压缩,昨天还好好的,今天就不能使用了,简直郁闷透顶。出现了:“ Cannot read property ‘bindings’ of null” 错误。

我的package.js文件是这样写的:

而使用到的babel代码就是上面的一段代码

主要问题是我昨天打包运行好好的,今天不知道修改了那些地方,就是不能运行了。

无奈,只能硬着头皮解决了。多方查找,可能是我使用了babel版本七的缘故。
(1) 首先就是安装@babel/preset-env: npm install @babel/preset-env –save-dev
(2) 然后将:{presets: [‘env’]} 换成:{presets: [“@babel/preset-env”]
(3) 见证奇迹的时刻到了,竟然可以了?(我都开始怀疑我以前能执行成功,都是我的幻觉)

(突然,我发现了一个秘密),当我把”@babel/preset-env”换成env的时候,竟然又可以了???(合着,我是做了白用功啊)

2.Cannot find module ‘@babel/template’

问题出现的原因,不知道是不是因为我执行了cnpm uninstall gulp-filter -D命令,因为在执行这个命令之前,一切都很平静。应该是某个插件依赖了@babel/template,而gulp-filter也依赖了@babel/template,但是没有在package.json中写入,所以在卸载的时候,把@babel/template删除掉了。我没有实际才是,能不能直接安装@babel/template,我是把node_modules删除掉,重新cnpm install 安装了全部的依赖,就解决了问题。

小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。