前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Webpack基本使用

Webpack基本使用

作者头像
一个淡定的打工菜鸟
发布2018-09-06 17:37:08
4160
发布2018-09-06 17:37:08
举报
文章被收录于专栏:淡定的博客淡定的博客

Webpack介绍:主要用于web项目中打包资源进行自动构建,Webpack将所有资源视为JS的模块来进行构建,所以对于CSS,Image等非JS类型的文件,Webpack会使用相应的加载(loader)器来加载成其可识别的JS模块资源,通过配置一些信息,就能将资源进行打包构建,更好地实现前端的工程化

Webpack安装

本地安装:

代码语言:javascript
复制
npm install -D webpack
-D 实际上是简写  --dev-save

如果你使用Webpack 4+ 版本, 你还需要安装CLI.

代码语言:javascript
复制
npm install -D webpack-cli

要安装特定版本

代码语言:javascript
复制
npm install -D webpack@<version>

全局安装:

代码语言:javascript
复制
npm install -g webpack

配置项简介:

  1. Entry,入口文件配置,Webpack执行构建的第一步将从entry开始,完成整个工程的打包
  2. Module,模块,在Webpack里,一切皆模块,Webpack会从配置的entry开始递归找出所有依赖的模块,最常用的是rules配置项,功能是匹配对应的后缀,从而针对代码文件完成格式转换和压缩合并等指定的操作.
  3. Loader,模块转换器,用于把模块原内容按照需求转换成新内容,这个是配合Module模块中的rules中的配置项来使用.
  4. Plugins,扩展插件,在Webpack构建流程中的特定时机注入扩展逻辑来改变构建结果或做你想要做的事情.(插件API)
  5. Output,输出结果,在Webpack经过一系列处理并得出最终想要的代码后输出结果,配置项用于指定输出文件夹,默认是./dist

基本使用

把src的代码编译到dist目录中

project

代码语言:javascript
复制
handle
|- package.json
|- webpack.config.js
|- index.html
|- /src
  |- index.js
  |- mixin.js
|- /dist
  |- bundle.js

src/index.js

代码语言:javascript
复制
import  content  from "./mixin";
document.body.appendChild(content("webpack"));

src/mixin.js

代码语言:javascript
复制
module.exports = function (con) {
  var element = document.createElement('div');

  element.innerHTML = 'Hello, ' + con;
  return element;
}

index.html

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>起步</title>
</head>
<body>
   <script src="./dist/bundle.js"></script>
</body>
</html>

.npmrc

代码语言:javascript
复制
registry=https://registry.npm.taobao.org

webpack.config.js

代码语言:javascript
复制
const path = require('path');

module.exports = {
  // 打包的入口点
  entry: './src/index.js',
  // 打包的输出点
  output: {
      // 打包之后输出文件的名称
    filename: 'bundle.js',
      // 打包之后输出文件的路径
    path: path.resolve(__dirname, 'dist')
  }
}

总结

webpack 的基本使用方式 :

  1. 配置package.json的start命令为webpack
  2. 创建webpack.config.js
  3. 指定项目打包的入口
  4. 指定项目打包后文件的名称和输出路径

配置代码错误源

如果报错了,是这样子的:

image
image

我们需要知道代码的具体错误,如图:

image
image

修改配置文件:

webpack.config.js

代码语言:javascript
复制
devtool: 'inline-source-map',
<!--去掉警告提示-->
mode: 'none'
image
image

webpack加载CSS

下载包

代码语言:javascript
复制
npm install -D style-loader css-loader

引入资源

src/js/index.js

代码语言:javascript
复制
// 引入css
import '../css/main.css'

修改配置文件

webpack.config.js

代码语言:javascript
复制
module: {
  rules: [
    // 加载css
    {
      // 找到css文件()
      test: /\.css$/,
      // 需要转换器(需要什么转换器 都是大家都知道的 style-loader css-loader)
      use: ['style-loader', 'css-loader']
    },
  ]
}

webpack加载图片

下载包

代码语言:javascript
复制
npm install -D file-loader

引入资源

src/js/index.js

代码语言:javascript
复制
// 引入图片
const imgSrc = require('../image/chrome.png');

修改配置文件

webpack.config.js

代码语言:javascript
复制
rules: [
  {
    test: /\.(png|jpe?g|gif|svg)$/,
    use: ['file-loader']
  }
]

webpack加载字体

  1. 下载字体
  2. 定义字体 @font-face { font-family: 'wanlum'; src: url("../fonts/Raleway.ttf"); }
  3. 使用字体 div { font-family: 'wanlum'; color: red; font-size: 30px; }
  4. 配置webpack.config.js { test: /\.(woff|woff2|eot|ttf|otf)$/, use: [ 'file-loader' ] }

webpack编译ES6

  1. 下载包 npm install -D babel-cli babel-preset-env babel-loader
  2. 编辑配置文件 .babelrc { "presets": [ "env" ] }
  3. 配置webpack.config.js { test: /\.js$/, exclude: /node_modules/, use: { loader: 'babel-loader' } }

less编译成css

  1. 下载包 npm install less-loader less -D
  2. 配置webpack.config.js { test: /\.less$/, use: ['style-loader','css-loader', 'less-loader'] },

html自动生成

  1. 下载包 npm install -D html-webpack-plugin clean-webpack-plugin
  2. 引入包 // 重新生成html的 const HtmlWebpackPlugin = require('html-webpack-plugin'); // 清理dist目录 const CleanWebpackPlugin = require('clean-webpack-plugin');
  3. 配置webpack.config.js plugins: [ new HtmlWebpackPlugin({ title: "你好" }), // 清理dist目录 new CleanWebpackPlugin(['dist']) ],

自动编译实时加载

  1. 下载包 npm install -D webpack-dev-server
  2. 配置webpack.config.js devServer: { contentBase: './dist' }
  3. 配置package.json启动项
代码语言:javascript
复制
"start": "webpack-dev-server --config webpack.config.js" 

热替换(跟自动编译实时加载功能差不多)

  1. 配置webpack.config.js
代码语言:javascript
复制
 plugins: [
    new HtmlWebpackPlugin({
      title: '使用HtmlWebpackPlugin'
    }),
     new webpack.NamedModulesPlugin(['dist']),
      new webpack.HotModuleReplacementPlugin(['dist'])
  ],
   devServer: {
     contentBase: path.resolve(__dirname,'dist'),
     hot: true
   }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018/07/02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Webpack安装
  • 基本使用
    • 总结
    • 配置代码错误源
    • webpack加载CSS
    • webpack加载图片
    • webpack加载字体
    • webpack编译ES6
    • less编译成css
    • html自动生成
    • 自动编译实时加载
    • 热替换(跟自动编译实时加载功能差不多)
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档