`
lxj8749
  • 浏览: 66568 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

webpack打包调试react并使用babel编译jsx配置方法

 
阅读更多

安装webpack

npm i webpack --save-dev

 如果使用 -g参数,可以安装到全局使用,在当前目录安装,可执行文件为 ./node_modules/.bin/webpack

 

配置webpack.config.js

var path = require('path');
module.exports = {
    entry: path.resolve(__dirname, 'src/index.js'),
    output: {
        path: path.resolve(__dirname, 'build'),
        filename: 'bundle.js',
    },
};

 entry为打包的入口文件,output为打包后生成的文件名及路径。

源代码可以编写成多个文件,然后由入口文件调用组装,相互独立的组件最好分别单独写在一个文件中

 

 

打包源文件

在当前目录执行webpack 或 ./node_modules/.bin/webpack 命令,就可以将源文件打成生成build/bundle.js文件,网页中直接作用<script src="build/bundle.js"></script>来调用即可

 

 

 

 

本地开发调试

 先安装 webpack-dev-server

npm i webpack-dev-server --save

 在package.json文件中scripts下面添加相应的配置(可以使用npm init来生成package.json文件)

{
  "scripts": {
    "build": "webpack",
    "dev": "webpack-dev-server  --port 8080  --inline --content-base ./build"
  }
}

--inline加入该参数可以实现自动刷新,

 

 

在当前目录执行 npm run dev,执行完成后,在文件夹build中新建index.html,加入如下代码

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>tests</title>
</head>
<body>
<div id="react-content"></div>
<script src="./bundle.js"></script>
</body>
</html>

在浏览器中打开 http://localhost:8080 就可以实时查看效果,修改后代码后,需要刷新才能查看到效果。执行npm run build可以打包,相当于执行webpack命令

 

 

Cannot GET / 错误

是由于package.json中的

"dev": "webpack-dev-server --devtool eval --progress --colors --hot --content-base build"

build文件夹不存在

 

 

 

 

 

配置react和babel

安装react

 

npm install react --save
 安装babel相关组件,让webpack自动转换jsx,

 

npm install babel-loader babel-core babel-preset-react babel-preset-es2015 --save-dev

 在webpact.config.js的module的loaders中增加相应配置

module: {
      loaders: [
        {
          test: /\.jsx?$/,
          exclude: /(node_modules|bower_components)/,
          loader: 'babel', // 'babel-loader' is also a legal name to reference
          query: {
            presets: ['react', 'es2015']
          }
        }
      ]
 }

 配置完成后,在js或jsx文件中就可以直接写jsx语法

 

babel编译es6和jsx

先安装babel-cli

npm install -g babel-cli

 再执行

babel src -d dist --presets react,es2015

 src 为源文件目录,dist为编译输出目录,--presets 预置插件

 

支持es7语法

es7语法分四个阶段分别对应四个插件

babel-preset-stage-0

babel-preset-stage-1

babel-preset-stage-2

babel-preset-stage-3

选择一个加载就能正确解析es7语法

 

 

配置.less

先安装less编译器

npm install less css-loader less-loader  style-loader --save-dev

在webpact.config.js的module的loaders中增加相应配置

{test: /\.less$/,loader: "style!css!less"}

 

 

配置图片及字体文件

 安装url-loader,修改webpact.config.js的module的loaders中增加相应配置

{test: /\.(gif|jpg|png|woff|svg|eot|ttf)\??.*$/, loader: 'url-loader?limit=50000&name=[path][name].[ext]'}

 

 

react,babel只能安装在当前目录,安装在全局无效,提交到github时需要把这些模块排除掉

 

npm安装依赖

在当前目录执行npm install会根据当前目录下的package.json文件,把需要的依赖都下载安装

 

 npm升级到3

npm install npm@3.0

 

分享到:
评论

相关推荐

    webpack打包的react案例demo.rar

    这里,我们设置了入口文件(entry),输出文件(output),并配置了一个规则(rule),使用`babel-loader`处理`.jsx`和`.js`文件,应用`@babel/preset-react`预设以转换JSX语法。 5. **安装Babel**:运行`npm ...

    webpack打包react项目的模版

    在这个"webpack打包react项目的模版"中,我们主要会探讨如何配置和使用Webpack来构建React应用。 1. **Webpack 基本概念** - **入口(Entry)**:Webpack 打包的起点,定义了应用的主文件,通常为 `index.js` 或 `...

    Webpack+React+ES6+JSX+CSS实例

    在这个"Webpack+React+ES6+JSX+CSS实例"中,我们将探讨如何整合这些技术来构建一个React组件,并结合CSS进行打包。 React 是一个用于构建用户界面的JavaScript库,尤其擅长构建单页应用。它基于组件化思维,允许...

    react 支持 ie8 demo webpack打包

    标题"react 支持 ie8 demo webpack打包"表明我们将讨论如何通过Webpack配置和Babel转译,使得一个React项目能在IE8上正常运行。这是一个常见的问题,因为许多企业仍然需要支持老旧的浏览器。 描述中提到的"提供打包...

    webpack4整合react

    1. **配置Babel**:设置`.babelrc`或在`webpack.config.js`中配置Babel,以使用`@babel/preset-env`和`@babel/preset-react`。 2. **配置Webpack**:设置入口、输出、模块加载器和解析规则。 3. **处理静态资源**:...

    React 教程:如何使用 webpack 4 和 Babel 构建 React 应用(2018)

    7. 创建webpack.config.js配置文件,配置规则,例如使用正则表达式/test: /\.js$/来匹配所有.js文件,并通过babel-loader来处理它们。 8. 最后,编写React组件代码,通过npm run build命令来打包应用,然后将生成的...

    webpack4x+React 组件使用

    React 应用通常有一个主入口文件,例如 `index.js`,它是 Webpack 的入口点,从这里开始遍历并打包所有依赖。 `dist` 文件夹是 Webpack 打包后的输出目录,这里包含了经过处理和优化的代码,可以直接部署到服务器供...

    react,react-dom及babel打包文件.zip

    使用这些打包文件,开发者可以快速搭建React环境,通过Babel处理JSX和新语法,然后通过react-dom将React组件渲染到网页上,从而构建出响应式的、高效的前端应用。对于初学者,这个压缩包提供了一站式的解决方案,...

    Webpack打包React支持多入口

    综上所述,"Webpack打包React支持多入口"意味着配置Webpack以处理多个入口文件,并为React应用提供适当的加载器、环境区分、热加载等功能。这样的配置使得开发和维护大型React项目变得更加高效和方便。

    react-native转react-web, react+redux, webpack打包

    标题 "react-native转react-web, react+redux, webpack打包" 描述了将React Native项目转换为Web应用,并结合React和Redux进行开发以及使用Webpack进行打包的过程。这是一个涉及到多个技术栈和流程的知识点集合,让...

    React+Webpack+babel项目搭建(webpack热编译)

    本文将详细介绍如何搭建基于React、Webpack和Babel的开发环境,并通过`webpack-dev-server`实现热更新功能。 #### 二、环境准备 1. **安装Node.js**: 确保已安装最新版本的Node.js,可以通过官网下载或使用包管理器...

    react-React组件脚手架可以调试打包发布单个React组件

    React应用通常需要Babel来编译 JSX 语法。 5. **开发服务器**:如`webpack-dev-server`,提供热模块替换(HMR),在代码更改时自动重新加载页面,加快开发流程。 6. **测试框架**:如Jest和Enzyme,用于编写单元...

    react-基于webpack的react脚手架搭建

    总结,基于Webpack搭建React脚手架涉及的关键步骤包括:安装Webpack和相关依赖,初始化React项目,配置Webpack以处理JSX、CSS和静态资源,以及选择合适的项目模板加速开发。理解并掌握这些步骤,能帮助开发者更高效...

    webpack配合react

    **Webpack 配合 React 构建自动化与项目打包** 在现代前端开发中,Webpack 已经成为不可或缺的模块打包工具,它能够有效地管理和优化我们的代码。React 作为一款流行的JavaScript库,用于构建用户界面,与Webpack...

    react-webpack-babel:React Webpack Babel简单配置教程

    在本文中,我们将深入探讨如何在不使用`create-react-app`的情况下,手动配置一个React项目,结合Webpack和Babel进行构建。这个过程涉及到的主要知识点包括React的基础知识、Webpack的配置原理以及Babel的转译机制。...

    前端构建之webpack+react 脚手架

    这将自动配置好 Webpack 并安装 React 相关依赖。 3. **自定义配置**:虽然 `create-react-app` 提供了开箱即用的配置,但若需自定义 Webpack 配置,可运行 `npx create-react-app my-app --template cra-template-...

    nodejs + webpack + react

    标题 "nodejs + webpack + react" 暗示了我们讨论的是一个基于Node.js环境的前端项目,其中使用Webpack作为模块打包工具,并结合React库来构建用户界面。这个项目利用Webpack的强大功能,如自动化打包、模块管理和...

    react-webpack4react多页面脚手架

    3. **生产模式**:当准备部署时,执行`npm run build`,Webpack将进行优化并打包所有资源到dist目录,适配生产环境。 4. **添加新页面**:根据现有的页面结构,创建新的React组件和Webpack配置,然后在主配置文件中...

    React+Webpack+babel项目搭建

    ### React + Webpack + Babel 项目搭建指南 本文旨在为初学者提供一套关于如何从零开始搭建一个基于React、Webpack以及Babel的前端项目的详细教程。通过本指南的学习,您将能够掌握基本的项目配置流程,并理解这些...

    webpack-dev-boilerplate, 基于React + Webpack + Babel的开发脚手架.zip

    在本项目“webpack-dev-boilerplate”中,它结合了React(一种流行的JavaScript库用于构建用户界面)、Webpack 和 Babel,为开发者提供了一个快速启动的前端开发环境。 React 是Facebook推出的用于构建用户界面的库...

Global site tag (gtag.js) - Google Analytics