在webpack中使用babel

安装流程

  1. 安装babel-preset-env和babel-loader

    npm install --save-dev babel-preset-env babel-loader

  2. 根目录创建webpack.config.js并配置,内容参考如下:

    module.exports = {
    entry: './src/index.js',
    output: {
    path: __dirname,
    filename: './build/bundle.js'
    },
    module: {
    rules: [{
    test: /\.js?$/,
    exclude: /(node_modules)/,
    loader: 'babel-loader'
    }]
    },
    mode: 'development'
    }

  3. 配置package.json中的scripts

    "scripts": { "start": "webpack", "test": "echo \"Error: no test specified\" && exit 1" },

  4. 运行 npm start

有可能你会遇到报错

Error: Cannot find module ‘@babel/core’ babel-loader@8 requires Babel 7.x (the package ‘@babel/core’). If you’d like to use Babel 6.x (‘babel-core’), you should install ‘babel-loader@7’.

说明你的babel依赖包不兼容,官方默认babel-loader | babel 对应的版本需要一致。有两种解决方法:

两种解决方案:

  • 回退低版本:npm install -D babel-loader@7 babel-core babel-preset-env

  • 更新到最高版本:npm install -D babel-loader @babel/core @babel/preset-env webpack

成功后你就可以在./build/bundle.js中看到转化完成的代码

使用示例

src/index.js

import util1 from './util1.js'
import { fn1, fn2 } from './util2.js'

console.log(util1)
fn1()
fn2()

src/util1.js

export default { a: 100 }

src/util2.js

export function fn1() {
alert('fn1')
}

export function fn2() {
alert('fn2')
}

index.html

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<p>test</p>
	<script type="text/javascript" src="build/bundle.js"></script>
</body>
</html>

启动静态服务器 http-server -p 8881 (此为NodeJS本地服务器,在下载安装NodeJS的基础上,可通过 npm install http-server -g 安装)

即可在localhost:8881显示效果

Webpack使用Babel是为了在项目使用最新的JavaScript语法和功能,同时保证在旧版本浏览器的兼容性。Babel可以将新版本的JavaScript代码转换为较旧版本的代码,以便在不支持新语法的浏览器运行。 要在Webpack使用Babel,首先需要安装相关的依赖。可以使用以下命令安装: ``` npm install --save-dev babel-loader @babel/core @babel/preset-env ``` 然后,在Webpack配置文件配置Babel。假设你的Webpack配置文件名为`webpack.config.js`,可以在该文件添加以下代码: ```javascript module.exports = { // ...其他配置项 module: { rules: [ { test: /\.js$/, exclude: /node_modules/, use: { loader: 'babel-loader', options: { presets: ['@babel/preset-env'] } } } ] } }; ``` 上述配置,我们通过`module.rules`数组的一个规则来告诉Webpack当遇到`.js`文件时,使用`babel-loader`进行转译。我们排除了`node_modules`目录,因为通常不需要对第三方库进行转译。 在Babel的配置,我们使用了`@babel/preset-env`预设,它可以根据目标环境自动确定需要转译的语法和插件。 除了以上配置外,还可以在项目根目录下创建一个`.babelrc`文件,用于存放Babel的配置项。例如: ```json { "presets": ["@babel/preset-env"] } ``` 这样,Webpack使用Babel进行转译时,会自动读取`.babelrc`文件的配置。 这是一个简单的Webpack配置示例,用于在项目使用Babel。你可以根据自己的需求进行更复杂的配置,例如添加更多的Babel插件或配置不同的预设。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值