学习心得1:webpack-babelloader

23 阅读1分钟

babel-loader用的最多的两个功能其实就是一个是解析es6+到es5,另一个就是解析jsx

这一次我打算亲自试试:创建一个只有webpack基础配置的文件夹,首先我尝试,是不是没有babel-loader的配置,是不能解析es6的,于是我写了这么一段代码,

let a=1;

document.write(a)

于是我使用webpack进行压缩,的到的结果竟然是document.write(1)! 为什么,不是不能解析es6吗,那么他为什么能够理解,于是我开始寻找答案,找到了,下面是解释:

这是因为生产环境的压缩原因,所以我们这里使用开发环境,会更加准确,终于,在开发环境下,不使用es6解析配置就和理想里面一样

eval("{let a = 1;\ndocument.write(a);\n\n//# sourceURL=webpack://my-webpack/./src/word.js?\n}");

而配置了@babel/preset-env

eval("{var a = 1;\ndocument.write(a);\n\n//# sourceURL=webpack://my-webpack/./src/word.js?\n}");

显而易见

下面就是测试对于jsx语法的支持,要配置,如果没有配置直接写在js里面的话就是这样:

image.png

如果加了@babel/preset-react配置就可以,就可以,但是要注意,对于不同版本,比如说17的渲染就是ReactDOM.render但是如果是18就是 createRoot,还有就是如果使用的是函数组件,即使没有使用React也要引入