资讯专栏INFORMATION COLUMN

详解Webpack+Babel+React开发环境的搭建

yuanzhanghu / 3033人阅读

摘要:安装要开始使用在项目中进行开发前我们首先需要在全局环境中进行安装。使用它可以将的语法转换为的语法,以便在现在有的环境执行。,是一段正则,表示进行匹配的资源类型。为指定应该被忽略的文件,我们在这儿指定了。

1.认识Webpack

构建应用前我们先来了解一下Webpack, Webpack是一个模块打包工具,能够把各种文件(例如:ReactJS、Babel、Coffeescript、Less/Sass等)作为模块进行编译后进行打包。

2.安装Webpack

要开始使用Webpack在项目中进行开发前我们首先需要在全局环境中进行安装。

</>复制代码

  1. npm install webpack -g

3.创建一个项目

安装好后创建一个名叫learn-webpack的项目并进入该项目文件夹,当然项目名字你可以起你自己想要的名字。

</>复制代码

  1. mkdir learn-webpack && cd learn-webpack

通过编辑器找到你刚刚所创建的项目文件夹

现在我们来创建2个文件:

app.js

</>复制代码

  1. document.querySelector("#app").innerHTML = "Hello World!";

index.html

</>复制代码

  1. Learn-webpack

然后在终端执行

</>复制代码

  1. webpack ./app.js ./dist/bundle.js

最后执行启动本地的http服务

</>复制代码

  1. python -m SimpleHTTPServer

这个时候你就可以在浏览器输入:

</>复制代码

  1. http://localhost:8000

如果你能在浏览器里面看到Hello world!那说明你已经成功的利用Webpack把main.js打包并编译到了bundle.js.是不是很简单?

定义一个配置文件

上面的只是对Webpack的使用进行了一些简单的介绍,实际上每个项目下都应该包含一个webpack.config.js,用来告诉Webpack需要做些什么。

</>复制代码

  1. module.exports = {
  2. entry: "app.js",
  3. output: {
  4. path: __dirname+"/dist",
  5. filename: "bundle.js"
  6. }
  7. }

现在在终端中运行:

</>复制代码

  1. webpack

看看是不是和之前输入 webpack ./app.js ./dist/bundle.js 的打包编译结果一样。

entry:指定打包的入口文件

1.单个文件打包为单个输出文件,直接写该文件的名字,例如:entry:"main.js"

2.多个文件打包为单个输出文件,将文件名放进一个数组,例如:entry:["main.js","xx.js"]

3.多个文件打包为多个输出文件,将文件名放入一个键字对,例如:entry: {a:"main.js",b:"xx.js"}

output:配置打包结果

path为定义输出文件夹,filename为打包结果文件的名称,如果指定打包入口文件为上面的1、2种情况,filename里面直接跟你想输出的文件名。若为第3种情况filename里面需写成[name].文件名.js,filename里面的[name]为entry中的键。

监听变化自动打包

当我们在不停的对代码进行变动的时候,为了不修改一次然后又手动去进行打包一次。可以使用webpack的watch功能。

</>复制代码

  1. webpack --watch 或者 webpack -w

或者可以直接在配置代码里面把watch设置为true

</>复制代码

  1. module.exports = {
  2. entry: "app.js",
  3. output: {
  4. path: __dirname+"/dist",
  5. filename: "bundle.js"
  6. },
  7. watch: true
  8. }
4.使用Babel

Babel是什么?Babel 是一个 JavaScript 编译器。使用它可以将ES6的语法转换为ES5的语法,以便在现在有的环境执行。

在终端执行:

</>复制代码

  1. npm install webpack babel-loader babel-core babel-preset-es2015 --save-dev

执行安装完成后需要将之前的webpack.config.js修改为:

</>复制代码

  1. module.exports = {
  2. entry: "./app.js",
  3. output: {
  4. path: __dirname+"/dist",
  5. filename: "bundle.js"
  6. },
  7. module: {
  8. loaders: [
  9. {
  10. test: /.jsx?$/,
  11. loader: "babel-loader",
  12. exclude: /node_modules/,
  13. query: {
  14. presets: ["es2015"]
  15. }
  16. }
  17. ]
  18. },
  19. resolve: {
  20. extensions: ["",".coffee",".js"]
  21. }
  22. }

现在就能在文件里面以ES6的语法进行代码编写,我们来测试一下,在app.js加入:

</>复制代码

  1. var func = str => {
  2. console.log(str);
  3. };
  4. func("我现在在使用Babel!");

ES6支持用箭头方式来定义函数,如果你能在控制台看到“我现在在使用Babel!”的打印文字,说明我们的Babel模块安装成功,可以开始使用ES6进行代码编写了。

loaders项里面表示用来加载这种类型的资源的loader,loader的使用可以参考 using loaders,更多的loader可以参考 list of loaders。

test,是一段正则,表示进行匹配的资源类型。

exclude为指定应该被忽略的文件,我们在这儿指定了/node_modules/。

query有2种写法,参见query-parameters, 一种是直接以字符串形式跟在loader名后:

</>复制代码

  1. loader: "babel-loader?presets[]=es2015

另一种如本文所示:

</>复制代码

  1. query: {
  2. presets: ["es2015"]
  3. }

resolve.extensions 用于指明程序自动补全识别哪些后缀,
注意一下, extensions 第一个是空字符串! 对应不需要后缀的情况.

5.结合React

前面我们已经对Webpack和Babel进行了配置并做了一些介绍,基本的环境已经搭建好了,现在我们开始在使用React。

终端输入以下代码对react和react-dom进行安装

</>复制代码

  1. npm install react react-dom --save

Babel针对React的所有的预设插件

</>复制代码

  1. npm install babel-preset-react --save-dev

由于我们增加了react的预设插件,所以需要对webpack.config.js进行修改。

将module -> loaders下面的query修改如下:

</>复制代码

  1. query: {
  2. presets: ["es2015","react"]
  3. }

现在创建一个名为hello.js的文件

</>复制代码

  1. import React from "react";
  2. class Hello extends React.Component{
  3. render() {
  4. return (
  5. Hello, World!
  6. )
  7. }
  8. }
  9. export default Hello;

然后将app.js里面的文件修改如下:

</>复制代码

  1. import React from "react";
  2. import ReactDOM from "react-dom";
  3. import Hello from "./hello";
  4. // var func = str => {
  5. // console.log(str);
  6. // };
  7. //
  8. // func("我现在在使用Babel!");
  9. // document.querySelector("#app").innerHTML = "Hello World!";
  10. ReactDOM.render(
  11. ,
  12. document.querySelector("#app")
  13. );

如果你能在浏览器里面看到 "Hello, React!",就说明我们已经将Webpack+Babel+React的环境搭建好了,接下来我们就可以此基础上来进行开发了。

出处:https://xiaoqing.org/webpack-...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/86414.html

相关文章

  • react实时热更新开发环境搭建

    摘要:搭建一个实时热更新开发环境,当代码变更时,可以不用重新启动打包文件,这样会很大地提高我们的开发效率。完成开发环境搭建。 搭建一个react实时热更新开发环境,当代码变更时,可以不用重新启动webpack打包文件,这样会很大地提高我们的开发效率。 使用工具 vscode编辑器,可以实时git推送更新自带git命令行,随意下载各种语言框架代码格式化高亮插件 chrome ^58浏览器性能...

    princekin 评论0 收藏0
  • react实时热更新开发环境搭建

    摘要:搭建一个实时热更新开发环境,当代码变更时,可以不用重新启动打包文件,这样会很大地提高我们的开发效率。完成开发环境搭建。 搭建一个react实时热更新开发环境,当代码变更时,可以不用重新启动webpack打包文件,这样会很大地提高我们的开发效率。 使用工具 vscode编辑器,可以实时git推送更新自带git命令行,随意下载各种语言框架代码格式化高亮插件 chrome ^58浏览器性能...

    Vultr 评论0 收藏0
  • react基于webpackBabel 6上开发环境搭建

    摘要:可能在项目正式上线的时候才需要发布配置单文件入口版本新建一个和开发环境不同的是,入口和出口。相应的在的源也要进行修改。加载模块发布配置多文件模式库最好就不要打包进来。因为一般库都是不会改动的。所以这里就要进行库的分离。 react-js开发环境 时间:2016.3.19-12:29作者:三月懒驴基于:react版本:0.14基于:babel版本:6相关代码:github 开始一个项目 ...

    callmewhy 评论0 收藏0
  • React项目实战:环境搭建

    摘要:官方文档中文翻译构建用户界面的库。官方文档建议学习时以官方文档为准,中文翻译或者第三方作者的教程可以帮助你理清思路会用到的重要知识点我也会进行简明的解释,如遇到错误或者不理解的内容,欢迎实时指出。 前言 前面提到前端大统一的概念,如果感兴趣,欢迎说说自己的看法,点击前往。Web前端框架层出不穷,不可能面面俱到,这里给个小建议: 如果对Weex App感兴趣,应该选择vue框架; 如果...

    cnio 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<