webpack教程(二)

简介: 目录配置css-loader配置less-loader配置url-loader配置压缩插件配置html插件配置dev-server配置热更新配置跨域准备工作创建webpackdemo文件夹启动cmd, 进入webpackdemo目录,运行npm init初始化package.

目录

  1. 配置css-loader
  2. 配置less-loader
  3. 配置url-loader
  4. 配置压缩插件
  5. 配置html插件
  6. 配置dev-server
  7. 配置热更新
  8. 配置跨域

准备工作

  1. 创建webpackdemo文件夹
  2. 启动cmd, 进入webpackdemo目录,运行npm init初始化package.json
  3. 创建app.css文件和app.less文件
// app.css
body {
    background: #EEEEEE;
}

// app.less
.box {
    width: 600px;
    margin: 10px auto;
    img {
        width: 600px;
    }
    p {
        text-align: center;
    }
}
  1. 创建入口文件main.js
require('./app.css');
  1. 创建webpack.config.js
const path = require('path');
module.exports = {
    entry: './main.js',
    output: {
        path: path.resolve(__dirname, 'dist'),
        filename: 'index.js'
    },
        mode: 'development'
}
  1. 测试打包是否成功

配置css-loader

  1. 在webpack.config.js里加上下面的代码
module: {
        rules: [
            {
                test:/\.css$/,
                use: ['style-loader', 'css-loader']
            }
        ]
     }
  1. 安装style-loader和css-loader
npm i style-loader css-loader --save-dev
  1. 在main.js里加上以下代码:
require('./app.css')
  1. 运行 webpack 命令
  2. 检查配置是否成功
    在dist目录创建index.html,把打包后的index.js文件进行加载,打开index.html,若背景是灰色说明成功

配置less-loader

  1. 在module的rules里面加上以下代码
{
    test: /\.less$/,
    use: ['style-loader', 'css-loader', 'less-loader']
}
  1. 安装less和less-loader
npm i less --save-dev
npm i less-loader --save-dev
  1. 在main.js加入以下代码
require('./app.less');
  1. 检查配置是否成功
    在dist的index.html里加入下面的代码
<div class="box">
    <p>测试less-loader</p>
    <img src="../img.png"/>
</div>

打开index.html检查app.less里的样式是否生效

配置url-loader

  1. 在webapck.config.js的module里的rules对象里加上下面的代码
{
    test: /\.(png|jpg|gif)$/,
    use: [{
        loader: 'url-loader',
        options: {
            limit: 8192
        }
    }]
}
  1. 安装file-loader和url-loader
npm i file-loader url-loader --save-dev
  1. 在main.js里加上下面的代码
let img = document.createElement('img');
img.src = require('./img.png');
document.body.appendChild(img);
  1. 运行webpack命令,打开dist里面的index.html查看是否增加了一张图片

配置压缩插件和html插件

  1. 在webpack配置文件的开头加入以下代码:
// 生成html的插件
const htmlWebpackPlugin = require('html-webpack-plugin');
// 压缩的插件
const uglifyjsWebpackPlugin = require('uglifyjs-webpack-plugin');

在module后面添加以下代码:

plugins: [
    new htmlWebpackPlugin(),
    new uglifyjsWebpackPlugin()
]
  1. 安装htmlWebpackPlugin和uglifyjsWebpackPlugin插件,同时还需要局部安装webpack
npm i webpack html-webpack-plugin uglifyjs-webpack-plugin --save-dev
  1. 运行打包命令 webpack,打开dist里面的index.html和index.js检查配置是否成功

配置dev-server

  1. 在webpack配置文件加上以下代码
devServer: {
    contentBase: path.join(__dirname, "dist"),
    compress: true,
    port: 9000
}
  1. 安装webpack-dev-server 和webpack-cli
npm i webpack-dev-server webpack-cli --save-dev
  1. 在package.json的scripts里面加上下面这一句
"dev": "webpack-dev-server --open --oneline"
  1. 运行npm run dev 检查配置是否成功

配置热模块替换(热更新)

  1. 在webpack配置文件的开头加上
const webpack = require('webpack');

在plugins里加上

new webpack.HotModuleReplacementPlugin()
``
在devServer加上

hot: true

2. 运行npm run dev检查控制台是否有打印以下信息

[WDS] Hot Module Replacement enabled.

有则表示热更新已开启

#### 配置webpack跨域
1. 在webpack的devServer对象里加上

proxy: {
'/v4': {
target: 'https://m.maizuo.com',
// 允许跨域
changeOrigin: true,
pathRewrite: {
'^/v4': '/v4'
}
}
}

2. 在main.js里加上

// 测试跨域请求
const $ = require('jquery');

let url = '/v4/api/film/now-playing?__t=1535683702386&page=1&count=5';
$.ajax({
type:"get",
url,
success: (res)=> {
console.log(res)
},
error: ()=> {
alert('请求失败');
}
});

3. 安装jquery

npm i jquery --save-dev

4. 执行npm run dev
看是否拿到了服务器的数据
目录
相关文章
|
5月前
|
移动开发 JSON 自然语言处理
Vue系列教程(16)- 模块打包器(webpack)
Vue系列教程(16)- 模块打包器(webpack)
47 0
|
10月前
|
JavaScript 前端开发
React全家桶建站教程-Webpack #5
React全家桶建站教程-Webpack #5
73 0
|
12月前
|
JavaScript 前端开发 CDN
Vue——11- webpack保姆级教程02
source-map、oneOf、externals、树摇技术、安装jQuery、 对css进行打包压缩以及 code split(代码分割)
116 0
|
12月前
|
存储 缓存 JSON
Vue——10 - webpack打包保姆级教程01
打包js、json、css、less、html、背景图片以及图片、字体(Font)文件,devsever,生产环境配置以及css的兼容写法
330 0
|
JavaScript 前端开发
【TypeScript教程】# 16:ts + webpack + less实现贪吃蛇小游戏
【TypeScript教程】# 16:ts + webpack + less实现贪吃蛇小游戏
133 0
【TypeScript教程】# 16:ts + webpack + less实现贪吃蛇小游戏
|
JavaScript
【TypeScript教程】# 6:使用webpack打包ts代码
【TypeScript教程】# 6:使用webpack打包ts代码
159 0
【TypeScript教程】# 6:使用webpack打包ts代码
|
前端开发 JavaScript
Webpack教程
Webpack教程
84 0
|
JavaScript 前端开发 测试技术
Node、webpack、脚手架vue-cli,介绍与安装,无缝连接教程
Node、webpack、脚手架vue-cli,介绍与安装,无缝连接教程
135 0
|
缓存 前端开发 JavaScript
好程序员教程分享webpack打包文件太大怎么办
好程序员教程分享webpack 打包文件太大怎么办,webpack 把我们所有的文件都打包成一个 JS 文件,这样即使你是小项目,打包后的文件也会非常大。下面就来讲下如何从多个方面进行优化。 去除不必要的插件 刚开始用 webpack 的时候,开发环境和生产环境用的是同一个 webpack 配置文件,导致生产环境打包的 JS 文件包含了一大堆没必要的插件,比如HotModuleReplacementPlugin, NoErrorsPlugin复制代码这时候不管用什么优化方式,都没多大效果。
2015 0
|
Web App开发 前端开发 JavaScript
webpack教程(一)
目录 (一) 其他 准备工作 安装webpack (二) webpack配置 单入口文件配置 多入口配置 准备工作 下载安装node模块,用npm 配置淘宝镜像 webpack是什么 webpack是一个js的打包工具,可以进行很多自动化的工...
1020 0