webpack 配置学习笔记

最简单的 webpack 配置

const path = require(‘path‘)
module.exports = {
    entry:  ‘./app/index.js‘, // 入口文件
    output: {
      path: path.resolve(__dirname, ‘build‘), // 必须使用绝对地址,输出文件夹
      filename: "bundle.js" // 打包后输出文件的文件名
    }
}

webpack 命令配置

在 package.json 中添加代码

"scripts": {
   "build": "webpack",
}

之后可以使用 npm run build 来启动 webpack 进行打包

自动刷新 webpack-dev-server

npm install webpack-dev-server --save-dev

修改 package.json 文件

"scripts": {
   "build": "webpack",
   "dev": "webpack-dev-server --open"
 }

执行 npm run dev 命令则会启动服务,等待编译完成后会自动在浏览器中打开 index.html 页面

Loader

Babel:编译 es6 代码,可以在项目中直接使用 es6,需要安装的库如下

npm i --save-dev babel-loader babel-core babel-preset-env
  • babel-loader 用于让 webpack 知道如何运行 babel
  • babel-core 可以看做编译器,这个库知道如何解析代码
  • babel-preset-env 这个库可以根据环境的不同转换代码

在 webpack 中添加配置:

module.exports = {
  // ...
  module: {
    rules: [
      {
        test: /\.js$/, // 指定 js 文件需要使用 babel
        use: ‘babel-loader‘, // 使用哪个 babel
        exclude: ‘/node_modules‘ // 不包含路径
      }
   ]
}

配置 babel ,添加 .babelrc 文件

{
  "presets": ["babel-preset-env"]
}

处理 CSS 文件 css-loader style-loader

npm install css-loader style-loader --save-dev

添加配置:

module: {
    rules: [
      {
        test: /\.css$/,
        use: [‘style-loader‘, { // 将 css 插入到页面的 style 标签
          loader: ‘css-loader‘, // 处理 css 文件中的 url() 等
          options: {
            modules: true
          }
        }]
      }
    ],
  },

这样一来 css 会以 js 的方式一起打包到 bundle 文件中,但是如果 css 代码很多,则会造成 js 文件变得十分复杂而庞大,因此可以使用 extract-text-webpack-plugin 将 css 单独打包成文件

安装

npm i --save-dev extract-text-webpack-plugin

webpack 配置

const ExtractTextPlugin = require("extract-text-webpack-plugin")

module.exports = {
    // ....
    module: {
        rules: [
        {
            test: /\.css$/,
            use: ExtractTextPlugin.extract({
                fallback: ‘style-loader‘,
                use: ‘css-loader‘
            })
        }
       ],
    },
    // 插件列表
    plugins: [
      // 输出的文件路径
      new ExtractTextPlugin("css/[name].[hash].css")
    ]
  }

再次运行 npm run dev,可以发现 css 文件被单独打包了

   

在页面中自动引入打包后的文件:html-webpack-plugin

npm install html-webpack-plugin --save-dev

webpack 配置:

const HtmlWebpackPlugin = require(‘html-webpack-plugin‘)module.exports = {
    //...
  plugins: [
    new HtmlWebpackPlugin()
  ]
};

这里会自动以项目目录下的 index.html 为模板,打包后主动在页面中引入打包后的文件,并在目标地址(build)生成新的 index.html 文件,效果如下

在 HtmlWebpackPlugin() 方法中可以进行配置,具体配置项目可以参考

https://www.npmjs.com/package/html-webpack-plugin

https://segmentfault.com/a/1190000007294861

需要注意的是,HtmlWebpackPlugin 只有通过 npm run build (webpack)命令才能生效,在使用 npm run dev(webpack-dev-server --open)命令时则是没用的。

时间: 2024-10-12 09:19:01

webpack 配置学习笔记的相关文章

redis 安装配置学习笔记

redis 安装配置学习笔记 //wget http://download.redis.io/releases/redis-2.8.17.tar.gz 下载最新版本 wget http://download.redis.io/redis-stable.tar.gz 首先必须要有 gcc 与 make apt-get install gcc apt-get install make 1.解压 [email protected]:~# tar -xvf redis-stable.tar.gz 2.测

Chapter 2. OpenSSL的安装和配置学习笔记

Chapter 2. OpenSSL的安装和配置学习笔记 2.1 在linux上面安装OpenSSL我还是做点No paper事情比较在行,正好和老师的课程接轨一下.以前尝试过在Windows上面安装过openSSL,这次正好在Linux上面实现一下. 希望各位园友门纠错,征求意见中. 2.1.1 安装OpenSSL的系统环境和编译环境 测试环境:Linux MINT 16 Petra ? 1 2 3 4 5 6 $ lsb_release -a #查看linux发行版本系统信息 No LSB

Redis简介、安装、配置学习笔记

前一篇文章有介绍关系型数据库和非关系型数据库的差异,现在就来学习一下用的较广的非关系型数据库:Redis数据库 Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用. Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储

虚拟主机配置学习笔记

1.可以直接在httpd.conf当中进行配置,也可以使用extra中的httpd-vhosts.conf配置,建议使用第二种方式. 2.在httpd.conf中开启vhost.conf配置 3.找配置文件 4. 为了使用基于域名的虚拟主机技术,我们需要指定服务器的ip和端口来接收服务. 这个通过NameVirtualHost 指令完成. NameVirtualHost *:80 其中*表示所有的ip地址,如果是一个具体的ip,你可以写上这个ip,但建议使用*,80指的是端口. 接下来,要单独的

HA heartbeat + drbd 配置学习笔记

heartbeat安装软件 heartbeat-3.0.4-2.el6.x86_64.rpmheartbeat-devel-3.0.4-2.el6.x86_64.rpmheartbeat-libs-3.0.4-2.el6.x86_64.rpmldirectord-3.9.5-3.1.x86_64.rpm /usr/share/doc/        ha.cf           Main configuration file        haresources     Resource co

HA corosync 配置学习笔记

两个主机 相同的配置安装  corosync.x86_64 pssh-2.3.1-2.1.x86_64.rpm  crmsh-1.2.6-0.rc2.2.1.x86_64.rpm /etc/corosync/corosync.conf    4 totem {  5         version: 2  6         secauth: off  7         threads: 0  8         interface {  9                 ringnumbe

HA iscsi+ricci 配置学习笔记

服务端: 安装 :iscsi-initiator-utils.x86_64配置 /etc/tgt/targets.conf 38 <target iqn.20016-09.com.example:server.target1> 39     backing-store /dev/vdb1           #新加磁盘 40     initiator-address 172.25.28.26    #客户端主机 41     initiator-address 172.25.28.27   

JFinal常量配置学习笔记

在继承 JFinalConfig 类时,需要 实现 /** * Config constant */ public abstract void configConstant(Constants me); 这个方法来配置常量, 可以配置: 读取数据库配置文件 开发模式 视图类型 视图ViewPath 上传文件保存路径 视图后缀名 URL参数分隔符 等等 加载数据库配置文件 使用 LoadPropertyFile来读取文件: //这个是JFinalConfig自己封装的方法 //加载 classpa

webpack4配置学习(一)

webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle. 1.安装webpack 1.1需要先在项目中npm init初始化一下,生成package.json 1.2 npm install webpack webpack-cli -D 2.webpack配置 在