Webpack打包

一、Webpack

1、webpack 是什么?有什么用?有哪些同类工具?

(1)WebPack是一个前端资源打包,可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,vue等),并将其打包为合适的格式以供浏览器使用。

  • 因为webpack默认只认识js模块,其他的模块都需要相应的loader或plugins插件来解析

(2)用途

  • 构建单页应用(disk)
  • 代码压缩

(3)同类工具

  • fis3
  • grunt
  • gulp

2、webpack安装步骤(https://www.webpackjs.com

  • -g:全局安装
  • --save-dev:添加到 当前目录的package.json 文件 devDependencies 键下

(1)安装node.js(node.js提供了npm)

(2)安装淘宝镜像

(3)安装打包工具

  • npm i webpack -g

(4)安装打包配套工具

  • npm i webpack-cli -g

3、node.js模块系统

(1)导出:module.exports = 导出内容

        const cat = {
            name: '白猫',
            color: 'white'
        }
        module.exports = cat;

(2)导入:require( ' 文件路径 ' )

       const dog = require( './dog.js' );
       console.log(dog.name);

(3)打开终端运行:node index.js,查看是否正常输出

二、Webpack的核心的概念

1、入口和出口

  • entry:入口:告诉webpack从哪里开始打包
  • output:出口:输出的文件路径以及文件名

2、模式(环境)mode

  • 开发环境:development(不压缩代码)
  • 生产环境:production(压缩代码),一般默认压缩代码

3、loader:加载器(解释器)

  • webpack默认只认识js模块,其他的模块都需要相应的loader来解析

4、plugins:插件

  • 安装html-webpack-plugin插件

5、dev-server

  • 能够实时更新页面,边看边改
    • (1)安装:npm i webpack-dev-server -g
    • (2)配置devServer
    • (3)运行命令: webpack-dev-server
    • (4)配置启动命令:npm run (dev) ,dev是根据自己的命名
  • 在package.json文件的scripts配置:


    配置启动命令npm run dev.jpg

6、alias别名:例如@代替src

5、alias别名配置.jpg

代码整体思路:

  • (1)新建文件夹
  • (2)初始化package.json
    • npm init -y
  • (3)创建入口文件(一般命名main.js)
    • 一般用于导入css,js文件相关联等等
  • (4)创建webpack.config.js用于配置打包
  • (5)导入path(node.js自带的模块,用于处理路径相关联)
  • (6)配置入口(entry)与出口(output)文件
        entry: '入口文件路径',
        output: {
               //出口路径,__dirname:当前目录,'dirst':所存放的文件夹
             path: path.resolve(__dirname, 'dirst'),
             filename: 'Grayly.js'  // 生成的文件名
        },
  • (7)mode:模式配置(开发的环境)
    • development或production
  • (8)loader配置
    • 安装css-loader:npm i css-loader --save-dev
    • 安装style-loader:npm i style-loader --save-dev(因为css-loader依赖styke-loader)
  • (9)安装plugins插件
    • 安装html-webpack-plugin插件:npm i html-webpack-plugin --save-dev
  • (10)导入html-webpack-plugin模块
   //导入html插件
   const HtmlWebpackPlugin = require('html-webpack-plugin') 
  • (10)配置plugins插件
    plugins: [
        new HtmlWebpackPlugin({ template: './index.html' })  //html文件的路径
    ]
  • (11)为npm包目录创建软链接
    • 安装:npm link webpack --save-dev

完整代码

/**
 * 配置文件
 */

//1、导入path
const path = require('path');
//导入html插件
const HtmlWebpackPlugin = require('html-webpack-plugin') 

//2、配置入口与出口
module.exports = {
    //配置入口文件,告诉webpack从哪里开始打包
    entry: './main.js',  //入口文件路径

    //配置出口
    output: {
        //出口路径,__dirname:当前目录,'dirst':所存放的文件夹
        path: path.resolve(__dirname, 'dirst'),
        filename: 'Grayly.js'  // 生成的文件名
    },

//3、模式(环境):开发环境:development(不压缩代码),生产环境:production(压缩代码)
    mode: 'development',

    //4、loader:加载器(解释器)
    module: {
        rules: [
            {   // 识别规则
                test: /\.css$/,
                use: ['style-loader', 'css-loader'],
            },
        ],
    },

    //5、plugins插件
    plugins: [
        new HtmlWebpackPlugin({ template: './index.html' })
    ]
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,122评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,070评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,491评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,636评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,676评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,541评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,292评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,211评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,655评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,846评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,965评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,684评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,295评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,894评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,012评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,126评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,914评论 2 355

推荐阅读更多精彩内容

  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 webpack介绍和使用 一、webpack介绍 1、由来 ...
    it筱竹阅读 11,123评论 0 21
  • 写在开头 先说说为什么要写这篇文章, 最初的原因是组里的小朋友们看了webpack文档后, 表情都是这样的: (摘...
    Lefter阅读 5,288评论 4 31
  • GitChat技术杂谈 前言 本文较长,为了节省你的阅读时间,在文前列写作思路如下: 什么是 webpack,它要...
    萧玄辞阅读 12,697评论 7 110
  • webpack 介绍 webpack 是什么 为什么引入新的打包工具 webpack 核心思想 webpack 安...
    yxsGert阅读 6,464评论 2 71
  • 自傲的是,我是女生,多了一份羡慕的资格,只恨许多人,连这也不得。 幼时羡慕,理所当然。淘小子脾气风格和...
    正道爹爹阅读 439评论 1 0