webpack安装与使用

文档

官方文档:webpack

其它文档:菜鸟

前言

需要先安装 node :node安装与配置_木心操作的博客-CSDN博客

初始化

npm init -y

安装

全局安装

npm install webpack -g

安装指定版本 

npm install webpack@3.12.0 -g

 局部安装

npm install webpack -D
# 或
npm install webpack –save-dev

 常用依赖

css-loader

npm install style-loader css-loader -D

file-loader

npm i file-loader -D

html-webpack-plugin

npm i html-webpack-plugin -D

 less-loader

npm i less-loader -D

url-loader

npm i url-loader -D

打包命令

全局安装打包命令

webpack

 局部安装打包命令

npx webpack

配置打包命令

在 package.json "scripts" 里面添加 "build": "npx webpack",没有"scripts"就添加一个;然后就可以在终端使用 npm run build 进行打包

{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build": "npx webpack"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {},
  "devDependencies": {
    "webpack": "^3.12.0",
    "webpack-cli": "^3.3.12",
    "css-loader": "^6.7.1",
    "file-loader": "^6.2.0",
    "html-webpack-plugin": "^5.5.0",
    "less-loader": "^11.0.0",
    "style-loader": "^3.3.1",
    "url-loader": "^4.1.1"
  }
}

 main.js 文件

可以使用 impot 或 require() 加载文件

import './style.css'
require("./index.js")

webpack.config.js 配置

mode:打包模式("production" | "development" | "none")

entry:要打包的文件

output:打包后的位置与命名

const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')

module.exports = {
    // 通过选择 development, production 或 none 之中的一个,来设置 mode 参数,其默认值为 production。
    mode: 'development',
    entry: path.join(__dirname, './src/main.js'),
    output: {
        publicPath: './', // 开放目录
        path: path.join(__dirname, './dist'),
        filename: 'index.js',
    },
    module: {
        rules: [
            { test: /\.css$/i, use: ['style-loader', 'css-loader'] },
            { test: /\.less$/, use: ['style-loader', 'css-loader', 'less-loader'] },
            // 打包后less里面的图片不显示,解决:加上 esModule: false 与 type: 'javascript/auto'
            { test: /\.(jpg|png|gif|svg)$/, use: [{ loader: 'url-loader', options: { limit: 20000, esModule: false } }], type: 'javascript/auto' },
        ],
    },
    plugins: [
        new HtmlWebpackPlugin({
            title: '数据展示',
            filename: 'index.html',
            template: './src/index.html',
            favicon: path.join(__dirname, './src/favicon.ico'),
        }),
    ],
    watch: true, // 开启监听 -- 热加载
}

启用监听模式 

类似热加载

npx webpack --progress --colors --watch

解决报错

启动监听模式 webpack --progress --colors --watch 报以下错误

找到文件:node_modules\webpack-cli\bin\cli.js:137

删除中间的点:const statsPresetToOptions = require("webpack").Stats.presetToOptions;

参考:使用webpack命令打包时,报错TypeError: Cannot read property 'presetToOptions' of undefined的解决办法

区分开发与生产

安装 cross-env (跨平台设置环境和使用环境变量)

当然不装也可以获取node的process对象,这个包是解决不同电脑上设置环境变量的方式不一样的问题;

npm i cross-env -D

vue使用

mounted() {
    const NODE_ENV = process.env.NODE_ENV
    console.log(NODE_ENV)
},
methods: {},

参考:Webpack配置区分开发环境和生产环境 - 有梦想的咸鱼前端 - 博客园

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值