1.什么是webpack

webpack是一个前端资源加载/打包工具。它根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。

官网地址:https://www.webpackjs.com/

从上图看出,webpack可以将多种静态资源js,css,less转换成一个静态文件,减少页面的请求。

2.webpack安装

全局安装:

npm install webpack -g

npm install webpack-cli -g

查看版本号:

webpack -v

3.快速入门

3.1 js打包

1.创建src文件,src里创建bar.js

//bar
exports.info = function(str){
document.write(str);
}

2.src里创建logic.js

//logic
exports.add = function(a,b){
return a+b;
}

3.src里创建main.js

//main.js
var bar = require("./bar");
var logic = require("./logic");
require('./css1.css'); bar.info("hello world! "+logic.add(100,200));

4.创建配置文件webpack.config.js,与src处于同级目录

const path = require('path');

module.exports = {
// 读取src文件夹中的main.js(入口文件)
entry: './src/main.js',
output: {
// path.resolve解析当前相对路径的绝对路径 path.join
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js', }, };

含义:读取当前目录下src文件夹中的main.js(入口文件)内容,把对应的js文件打包,打包后的文件放入当前目录的dist文件夹下,打包后的js文件名为bundle.js。

5.执行编译命令

webpack

编译后查看dist文件夹下的bundle.js文件,会发现该文件包含了上面两个js文件的内容

6.创建index.html页面,引用bundle.js

<!doctype html>
<html>
<head> </head>
<body> <script src="dist/bundle.js"></script>
</body>
</html>

打开index.html页面,查看页面效果

3.2 css打包

1.安装style-loader和css-loader

webpack本身只能处理JavaScript模块,若要处理其他类型的文件,需要使用loader进行转换。

Loader 可以理解为是模块和资源的转换器,它本身是一个函数,接受源文件作为参数,返回转换的结果。这样,我们就可以通过 require 来加载任何类型的模块或文件,比如CoffeeScript、 JSX、 LESS 或图片。首先我们需要安装相关Loader插件,css-loader 是将 css 装载到 javascript;style-loader 是让 javascript 认识css

cnpm install style‐loader css‐loader ‐‐save‐dev

2.修改webpack.config.js,添加module

const path = require('path');

module.exports = {
entry: './src/main.js',
output: {
// path.resolve解析当前相对路径的绝对路径 path.join
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js', },
module: {
rules: [
// webpack读取loader时,是从右到左
// loader执行顺序是从右到左以管道方式链式调用
// css-loader是将css装载到javascript,style-loader是让javascript认识css
{ test: /\.css$/, use: ['style-loader','css-loader'] }
]
}
};

3.src里创建css文件夹,css下创建css1.css

body{
background: red;
}

4.修改main.js,引入css1.css

require('./css1.css');

5.重新运行webpack

6.运行index.html,查看页面背景色

webpack基本介绍及使用的更多相关文章

  1. webpack详细介绍以及配置文件属性!

    1.webpack简单介绍 (1)webpack是一个用于实现前端模块化开发工具,可帮助我们自动打包编译成浏览器能够识别的代码 :同时支持commonjs规范 以及es6的import规范: 同时具备 ...

  2. webpack的介绍

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA5EAAAGpCAIAAACbBiUBAAAgAElEQVR4Aey9CVwb553/L04JcSPuw5

  3. [webpack] webpack-dev-server介绍及配置

    webpack-dev-server是webpack官方提供的一个小型Express服务器.使用它可以为webpack打包生成的资源文件提供web服务.webpack-dev-server官方文档 w ...

  4. webpack初步介绍

    我们通过npm -g可以安装一个webpack的东西. npm -g叫做全局安装,通常是安装CLI程序(commond line interface). 我们只用过一次,装了cnpm.此时就能在CMD ...

  5. 09 webpack的介绍

    webpack干嘛的?:  模块打包机,分析目录结构,找到js模块(包括浏览器不能直接识别的代码 typscript sass...),打包成合适的格式供浏览器访问 webpack是一款模块加载器兼打 ...

  6. 1、webpack课程介绍

  7. Webpack从入门到上线

    webpack是目前一个很热门的前端打包工具,官网说得很清楚,webpack的出现就是要把requirejs干掉.同时它还提供了十分便利的本地开发的环境.网上并不容易找到一个讲解得比较详细完整的教程, ...

  8. React+ES6+Webpack环境配置

    转自http://www.cnblogs.com/chenziyu-blog/p/5675086.html 参考http://www.tuicool.com/articles/BrAVv2y Reac ...

  9. 实例讲解webpack的基本使用第一篇

    更新文章不容易,尤其是更新高质量的文章更加不易,因此为了节约时间,闲话就不多说了.关于webpack的介绍,webpack是用来干嘛的,这些基础概念性的东西,就不在此赘述,下面直接开始正题. webp ...

随机推荐

  1. mysql 中文乱码 修改编码 utf8

    在安装完数据库的时候,先不要创建数据库,先去更改字符集设置. show variables like 'character%'; vim /etc/my.cnf   (注意 下面的字段文件内没有时,自 ...

  2. oracle date函数

    常用的时间格式 在oracle中有 yyyy-mm-dd hh24:mi:ss  而在Java中有些区别 为yyyy-MM-dd HH:mm:ss 这点还是经常容易模糊的.相信很多人都有过统计某些数据 ...

  3. 29.密码学知识-消息认证码MAC-6——2019年12月19日

    1. 消息认证码 1.1 消息认证 消息认证码(message authentication code)是一种确认完整性并进行认证的技术,取三个单词的首字母,简称为MAC. 思考改进方案? 从哈希函数 ...

  4. Java使用wait() notify()方法操作共享资源详解_java - JAVA

    文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 Java多个线程共享资源: 1)wait().notify()和notifyAll()方法是本地方法,并且为final方 ...

  5. 线程协作之threading.Condition

    领会下面这个示例吧,其实跟java中wait/nofity是一样一样的道理 import threading # 条件变量,用于复杂的线程间同步锁 """ 需求: 男:小 ...

  6. ViewContainerRef 动态创建视图

    Angular DOM 操作 相关的APIs和类: 查询DOM节点 template variable ref: 模版变量引用,相当于react中的ref ViewChild: 查询DOM,返回单个元 ...

  7. [HG]walk 题解

    前言 学长博客划水,抄题解,差评. 于是我来重新写一篇正常的题解,虽然解法跟标程不一样,但是复杂度是一样的. 题面 题目描述 在比特镇一共有\(n\)个街区,编号依次为\(1\)到\(n\),它们之间 ...

  8. Qt android 配置

    http://www.cnblogs.com/ztzheng/p/3703716.html

  9. JAVA-IO模型(BIO,NIO,AIO)

    基本概念 阻塞和非阻塞 阻塞是进行读写时, 如果当时没有东西可读,或者暂时不可写, 程序就进入等待, 直到有东西可读或者可写为止 非阻塞是如果没有东西可读, 或者不可写, 读写函数马上返回, 而不会等 ...

  10. 学习日记16、easyui editor datagrid 动态绑定url

    首先获取easyui当前的editor,然后看代码就可以了 var Index = $("#draw").datagrid("appendRow", { Ext ...