请用心练完这16个webpack小例子

16个demo,webpack+react搭配使用

首先教大家2个新技能

1.按照正常github地址情况下,你的github本身不能访问目录。
例如要访问vue-demo下的vueCpu文件夹:github.com/holidaying/… (master是分支名)就可以访问。
2.github目录的制作
明确一个问题。一个标题就是一个目录名称
写法xx#不能少
题目名称的写法规则:abc demo->abc-demo,Abc-Demo->abc-demo。会忽略:和()即就是题目中所有可见字符的空格均用-连接,中、英文空格要分开,中文空格对应中文-。并且全为小写
步骤

首先,install Webpack 和 webpack-dev-server.

$ npm i -g webpack webpack-dev-server复制代码

Linux & Mac

$ git clone git@github.com:holidaying/webpack-demo.git

Windows

$ git clone https://github.com/holidaying/webpack-demo.git
:
$ cd webpack-demo
$ npm install复制代码
接下来就可以进行demo演示了.

$ cd demo01
$ webpack-dev-server复制代码
用浏览器访问 http://127.0.0.1:8080.

什么是webpack?

Webpack 是前端的打包工具类类似于 Grunt and Gulp.但是有区别,因为它是模块化构建机制,Webpack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其打包为合适的格式以供浏览器使用。

WebPack和Grunt以及Gulp相比有什么特性

其实Webpack和另外两个并没有太多的可比性,Gulp/Grunt是一种能够优化前端的开发流程的工具,而WebPack是一种模块化的解决方案,不过Webpack的优点使得Webpack可以替代Gulp/Grunt类的工具。

Grunt和Gulp的工作方式是:在一个配置文件中,指明对某些文件进行类似编译,组合,压缩等任务的具体步骤,这个工具之后可以自动替你完成这些任务。

更多信息.

$ webpack main.js bundle.js复制代码
它的配置文件是 webpack.config.js.

// webpack.config.js
module.exports = {
 entry: './main.js',
 output: {
 filename: 'bundle.js'
 }
};复制代码

有了webpack.config.js,你可以不带参数使用webpack

$ webpack复制代码
一些命令行选项你应该知道。

webpack – 构建文件
webpack -p – 发布
webpack --watch – 监听项目
webpack -d – 包含 source maps方便调试
webpack --colors – 让打包界面更好看
去构建你的项目, 你可以把启动项写进package.json

// package.json
{
 // ...
 "scripts": {
 "dev": "webpack-dev-server --devtool eval --progress --colors",
 "deploy": "NODE_ENV=production webpack -p"
 },
 // ...
}复制代码

目录

单文件入口
多文件入口
Babel-loader
CSS-loader
Image loader
CSS Module
UglifyJs Plugin插件
HTML Webpack Plugin and Open Browser Webpack Plugin
Environment flags环境变量
Code splitting代码分割
Code splitting with bundle-loader
Common chunk提取公共文件
Vendor chunk提取公共的第三方代码
externals全局变量
热模块替代/热更新
React router
Demo01: 单文件入口 (源码)

Webpack会入口文件进行打包成bundle.js.

例子, main.js 是单文件入口.

// main.js
document.write('<h1>Hello World</h1>');复制代码
index.html

<html>
 <body>
 <script type="text/javascript" src="bundle.js"></script>
 </body>
</html>复制代码

Webpack follows webpack.config.js to build bundle.js.

// webpack.config.js
module.exports = {
 entry: './main.js',
 output: {
 filename: 'bundle.js'
 }
};复制代码

启动服务, 访问 http://127.0.0.1:8080 .

$ webpack-dev-server复制代码
Demo02: 多文件入口(源码)

多个入口文件,实用于多个页面的应用

// main1.js
document.write('<h1>Hello World</h1>');
// main2.js
document.write('<h2>Hello Webpack</h2>');复制代码

index.html

<html>
 <body>
 <script src="bundle1.js"></script>
 <script src="bundle2.js"></script>
 </body>
</html>复制代码

webpack.config.js

module.exports = {
 entry: {
 bundle1: './main1.js',
 bundle2: './main2.js'
 },
 output: {
 filename: '[name].js'
 }
};复制代码

Demo03: Babel-loader (源码)

通过使用不同的loader,webpack通过调用外部的脚本或工具可以对各种各样的格式的文件进行处理(更多信息). 例如, Babel-loader Babel其实是一个编译JavaScript的平台可以将 JSX/ES6 文件转换成浏览器可以识别的js文件. 官方文档loaders.

main.jsx is a JSX 文件.

const React = require('react');
const ReactDOM = require('react-dom');
ReactDOM.render(
 <h1>Hello, world!</h1>,
 document.querySelector('#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值