首页 技术 正文
技术 2022年11月14日
0 收藏 707 点赞 3,242 浏览 2142 个字

本文简单记录学习webpack3.0的笔记,已备日后查阅。节省查阅文档时间

安装

可以使用npm安装

//全局安装
npm install -g webpack
//安装到项目目录
npm install --save-dev webpack

npm init会创建package.json文件。配置该文件可以简化我们之后的一些操作,比如我们对其中的“script”添加start命令,可以用“npm start”替代webpack命令

{
name: "webpack-example",
...
"scripts": {
"start": "webpack"
},
...
}

几个概念

webpack是一个现代javascript应用程序的静态模块打包器。它构建一个依赖关系图,包含所有模块,打包成一个或多个bundle。

四个核心概念

  • entry :指示webpack应该从哪个模块开始,构建依赖图。默认值./src
  • output:指示在哪里输出创建的bundles,默认值./dist
  • loader:让 webpack 能够去处理那些非 JavaScript 文件。loader 能够 import 导入任何类型的模块
  • plugin:插件的范围包括,从打包优化和压缩,一直到重新定义环境中的变量

entry 文件的指定

单一entry文件

mkdir entrydemo
cd entrydemo
npm init

npm init会让你输入一些信息配置package.json。如下

{
"name": "entrydemo",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "MIT"
}

接下来我们要创建index.html和main.js文件。main.js文件操作index.html的p标签内容

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<p id="title"></p>
<script type="text/javascript" src="main.js"></script>
</body>
</html>

main.js

document.getElementById("title").innerHTML="HELLO webpack";

下面我们要用webpack将main.js打包成bundle.js文件

如果你的webpack是全局安装,那么

webpack main.js bundle.js

如果是安装在项目根目录

node_modules/.bin/webpack main.js bundle.js

注意,在webpack3中,webpack-cli是集成的,到了4里面分开来了。第一次webpack时候可能会提示你安装webpack-cli,安装即可。上面的命令也有所改变,关于webpack4,本文不赘述

然后将index.html的javascript路径改为bundle.js

<script type="text/javascript" src="bundle.js"></script>

然后打开index.html,可以看到页面和上面是一样的

以上是用命令行指定entry file,下面我们写配置文件webpack.config.js去构建bundle.js

module.exports = {
entry: './main.js',
output: {
filename: 'bundle.js'
}
}

写好配置文件后,运行webpack命令就构建好bundle.js了。(非全局安装是node_modules/.bin/webpack

多个entry file

假设我们的入口文件是main1.js和 main2.js,对应输出是bundle1.js和bundle2.js

webpack.config.js这么写

module.exports = {
entry: {
bundle1: 'main1.js',
bundle2: 'main2.js'
}
output: {
filename: '[name].js'
}
}

loader

Babel-loader

Babel-loader用来将JSX/ES6文件转换成普通JS文件

module.exports = {
entry: './main.jsx',
output: {
filename: 'bundle.js'
},
module: {
rules: [
{
test: /\.jsx?$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: ['es2015', 'react']
}
}
}
]
}
};

CSS-loader

webpack.config.js

module.exports = {
entry: './main.js',
output: {
filename: 'bundle.js'
},
module: {
rules:[
{
test: /\.css$/,
use: [ 'style-loader', 'css-loader' ]
},
]
}
};
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,084
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,559
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,408
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,181
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,818
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,901