webpack 语法(精华篇)

(精华2020年5月12日更新) vue教程篇 webpack配置详解 package.json的启动 "scripts": { "build":"rimraf dist && webpack --config webpack.config.js --mode production", "dev": "webpack-dev-server --config webpack.config.js" } 基本共用配置文件webpack.common.js var webpack = require('webpack'); var path = r 阅读详情

WebPack是什么

  1. 一个打包工具
  2. 一个模块加载工具
  3. 各种资源都可以当成模块来处理
  4. 网站 http://webpack.github.io/

如今,越来越多的JavaScript代码被使用在页面上,我们添加很多的内容在浏览器里。如何去很好的组织这些代码,成为了一个必须要解决的难题。

对于模块的组织,通常有如下几种方法:

  1. 通过书写在不同文件中,使用script标签进行加载
  2. CommonJS进行加载(NodeJS就使用这种方式)
  3. AMD进行加载(require.js使用这种方式)
  4. ES6模块

思考:为什么只有JS需要被模块化管理,前台的很多预编译内容,不需要管理吗?

基于以上的思考,WebPack项目有如下几个目标:

  • 将依赖树拆分,保证按需加载
  • 保证初始加载的速度
  • 所有静态资源可以被模块化
  • 可以整合第三方的库和模块
  • 可以构造大系统

从下图可以比较清晰的看出WebPack的功能


这是一个示意图

WebPack的特点

  1. 丰富的插件,方便进行开发工作
  2. 大量的加载器,包括加载各种静态资源
  3. 代码分割,提供按需加载的能力
  4. 发布工具

WebPack的优势

  • webpack 是以 commonJS 的形式来书写脚本滴,但对 AMD/CMD 的支持也很全面,方便旧项目进行代码迁移。
  • 能被模块化的不仅仅是 JS 了。
  • 开发便捷,能替代部分 grunt/gulp 的工作,比如打包、压缩混淆、图片转base64等。
  • 扩展性强,插件机制完善,特别是支持 React 热插拔(见 react-hot-loader )的功能让人眼前一亮。

WebPack的安装

  1. 安装命令
    $ npm install webpack -g
  2. 使用webpack
    $ npm init  # 会自动生成一个package.json文件
    $ npm install webpack --save-dev #将webpack增加到package.json文件中
  3. 可以使用不同的版本
    $ npm install webpack@1.2.x --save-dev
  4. 如果想要安装开发工具
    $ npm install webpack-dev-server --save-dev

WebPack的配置

每个项目下都必须配置有一个 webpack.config.js ,它的作用如同常规的 gulpfile.js/Gruntfile.js ,就是一个配置项,告诉 webpack 它需要做什么。

下面是一个例子

var webpack = require('webpack');
var commonsPlugin = new webpack.optimize.CommonsChunkPlugin('common.js');
module.exports = {
    //插件项
    plugins: [commonsPlugin],
    //页面入口文件配置
    entry: {
        index : './src/js/page/index.js'
    },
    //入口文件输出配置
    output: {
        path: 'dist/js/page',
        filename: '[name].js'
    },
    module: {
        //加载器配置
        loaders: [
            { test: /\.css$/, loader: 'style-loader!css-loader' },
            { test: /\.js$/, loader: 'jsx-loader?harmony' },
            { test: /\.scss$/, loader: 'style!css!sass?sourceMap'},
            { test: /\.(png|jpg)$/, loader: 'url-loader?limit=8192'}
        ]
    },
    //其它解决方案配置
    resolve: {
        root: 'E:/github/flux-example/src', //绝对路径
        extensions: ['', '.js', '.json', '.scss'],
        alias: {
            AppStore : 'js/stores/AppStores.js',
            ActionType : 'js/actions/ActionType.js',
            AppAction : 'js/actions/AppAction.js'
        }
    }
};
  1. plugins 是插件项,这里我们使用了一个 CommonsChunkPlugin的插件,它用于提取多个入口文件的公共脚本部分,然后生成一个 common.js 来方便多页面之间进行复用。
  2. entry 是页面入口文件配置,output 是对应输出项配置 (即入口文件最终要生成什么名字的文件、存放到哪里)
  3. module.loaders 是最关键的一块配置。它告知 webpack 每一种文件都需要使用什么加载器来处理。 所有加载器需要使用npm来加载
  4. 最后是 resolve 配置,配置查找模块的路径和扩展名和别名(方便书写)

WebPack开始使用

这里有最基本的使用方法,给大家一个感性的认识

  1. 正确安装了WebPack,方法可以参考上面
  2. 书写entry.js文件
    document.write("看看如何让它工作!");
  3. 书写index.html文件
    <html>
    <head>
    <meta charset="utf-8">
    </head>
    <body>
    <script type="text/javascript" src="bundle.js" charset="utf-8"></script>
    </body>
    </html>
  4. 执行命令,生成bundle.js文件
    $ webpack ./entry.js bundle.js
  5. 在浏览器中打开index.html文件,可以正常显示出预期
  6. 增加一个content.js文件
    module.exports = "现在的内容是来自于content.js文件!";
  7. 修改entry.js文件
    document.write(require("./content.js"));
  8. 执行第四步的命令

进行加载器试验

  1. 增加style.css文件
    body {
    background: yellow;
    }
  2. 修改entry.js文件
    require("!style!css!./style.css");
    document.write(require("./content.js"));
  3. 执行命令,安装加载器
    $ npm install css-loader style-loader   # 安装的时候不使用 -g
  4. 执行webpack命令,运行看效果
  5. 可以在命令行中使用loader
    $ webpack ./entry.js bundle.js --module-bind "css=style!css"

使用配置文件
默认的配置文件为webpack.config.js

  1. 增加webpack.config.js文件
    module.exports = {
     entry: "./entry.js",
     output: {
         path: __dirname,
         filename: "bundle.js"
     },
     module: {
         loaders: [
             { test: /\.css$/, loader: "style!css" }
         ]
     }
    };
  2. 执行程序
    $ webpack

发布服务器

  1. 安装服务器
    $ npm install webpack-dev-server -g
    $ webpack-dev-server --progress --colors
  2. 服务器可以自动生成和刷新,修改代码保存后自动更新画面
    http://localhost:8080/webpack-dev-server/bundle
pe卸载win10更新补丁_禁用Win10系统更新 众所周知,最近WIN10的强制更新导致了很多问题。如:(部分专业软件系统更新后无法使用,硬件中键盘、鼠标、指纹之类的硬件,更新补丁后失灵等问题)。而之前的禁用WindowsUpdate的方法已经失效。下面我们另辟蹊径,利用系统权限的方法使Win10无法更新,达到禁用更新的目的。1.计算机管理-服务中禁用Windows Update服务。2.打开C:\Windows\softwareDistribu... 阅读详情

相关推荐

HC32F460 FPU实战:从零开启硬件浮点加速

本文详细介绍了如何在HC32F460开发板上启用和优化FPU(浮点运算单元),以显著提升硬件浮点运算性能。从工程配置、关键代码修改到实战优化技巧,全面解析FPU加速的实现方法,并分享常见问题的解决方案,帮助开发者避免常见陷阱,充分发挥HC32F460的硬件潜力。

weixin_42620340的博客 348

webpack 基础语法整理

之前遇到webpack的知识点都是随手记载在有道笔记上,随着时间越来越久,记得东西也就多了,而且没有分类,所以杂乱无章,也不方便查阅,所以系统化地整理一下 。 一、初始webpack webpack 是目前最为流行的前端构建工具,生态成熟,配置灵活,社区活跃,官方插件和第三方插件资源丰富。 二、安装 1、全局安装 npm install webpack -g 2、本地安装(官方推荐) npm install webpack -D 三、使用 1、全局安装的使用方法 直接在命令行中执行webpack入口文件.

weixin_47319740的博客 704

Kylin-Desktop-V10-SP1海光版虚拟机安装全流程(含桥接网络配置)

本文详细介绍了在VMware虚拟机中安装Kylin-Desktop-V10-SP1海光版操作系统的完整流程,重点解决了基于海光(Hygon C86)平台的网络配置难题。内容涵盖从镜像准备、虚拟机创建、系统安装到桥接网络配置的三种实战方法,并提供了安装后的优化与必备软件配置指南,帮助用户高效搭建国产化测试与开发环境。

weixin_29323493的博客 352

前端webpack常见语法记录

项目结构 build主要的配置 webpack.config.js 2. webpack.dev.config.js

老梅的博客 582

告别模糊与偏色:使用RKISP Tuner为RK3588s+IMX415进行图像质量调优的实战心得

本文详细介绍了如何使用RKISP Tuner为RK3588s+IMX415进行图像质量调优的实战经验。从调试环境搭建到3A算法优化,再到画质增强模块的深度调参,提供了全面的技术指导和参数建议,帮助工程师解决噪声、色偏和细节模糊等常见问题,显著提升成像质量。

weixin_28729205的博客 452

信贷风控实战指南:Vintage分析表从数据建模到风险洞察

本文是一份信贷风控实战指南,详细阐述了Vintage分析从数据建模到风险洞察的全流程。文章深入解析了Vintage分析作为信贷资产“体检报告”的核心价值,并提供了从借据表与还款计划表设计、账龄计算、逾期口径判定到风险暴露计算与最终可视化透视的完整SQL实现方案,旨在帮助风控从业者构建精准的风险监控体系。

nft7creator的博客 321

Webpack--入门只看这一篇就够了(图文+代码)

代码分离(code splitting)和懒加载(lazy loading)是Webpack中用于优化资源加载的两种技术。代码分离是将打包生成的代码文件拆分成多个较小的文件,而不是将所有代码打包到一个文件中。这样做的好处是可以提高初始加载速度,并减小每个页面的加载所需的数据量。通过代码分离,只需在需要时加载特定模块,提高了页面的响应速度和用户体验。懒加载是指在需要时才加载某个模块,而不是在初始加载时就将所有代码一次性加载完毕。通过懒加载,可以将页面分成多个模块,并根据需要动态地加载模块。

小庄zzz的博客 3万+

从零开始STM32cubeide学习

使用的是正点原子的精英版,单片机是STM32F103ZET6,详细讲解完成跑马灯实验

weixin_44077208的博客 2279

webpack详解

一、什么是webpack 1、官方解释:从本质上来讲,webpack是一个现在的javaScript应用的静态模块化打包工具。(从两点概括这句话即模块和打包) 下面来说一下模块和打包的概念! 2、前端模块化: 前端模块化的一些方案:AMD、CMD、CommonJS、ES6(浏览器不能识别它们,但是webpack可以做它们的底层支撑,方可进行模块化开发) ES6之前,要想进行模块化开发,就必须借助于其他的工具,让我们可以进行模块化开发 并且在通过模块化开发完成了项目后,还需要处理模块化间的各种依赖,并且将

qq_43743402的博客 6万+

速腾Helios-16P使用Lego-loam实时构建点云地图(二)——Lego-loam的编译与运行

不兼容的问题,打开lego-loam的~/lego-loam_ws/src/LeGO-LOAM/LeGO-LOAM/src下的4个源码文件,搜索/camera_init,将所有/camera_init改成camera_init,也就是去掉斜杠,这样再回到工作空间重新编译lego-loam。3、速腾16线激光雷达RS-16 ----- 3D建图算法LeGO-LOAM的使用(Ubuntu18.04 + ROS Melodic)_速腾16线 lego loam_杰尼君的博客-优快云博客。

qq_59475883的博客 2567

先进封装类别分析与典型案例

当制程微缩逼近物理极限、单颗大芯片(reticle limit)面积受限于光罩尺寸,且逻辑、存储、射频、传感等功能无法用同一套工艺最经济地制造时,性能增益的来源从 "晶体管密度" 转向 "互连密度"。先进封装的本质,是在芯片外部用更短、更密、更宽的路径把多个裸 die(die)互连起来,换取更高带宽、更低延迟、更小体积和异构集成能力。行业通常按划分为 2D、2.5D、3D、扇出、SiP 五大谱系,Chiplet/UCIe 则是贯穿其上的设计方法论,玻璃基板、共封装光学(CPO)是正在成型的新分支。

0 31

webpack看这一篇就够了

能够理解webpack基本概念和作用能够掌握webpack使用步骤能够使用webpack相关配置能够使用webpack开发服务器能够查阅使用webpack中文文档webpack官网现代 javascript 应用程序的 静态模块打包器 (module bundler)为要学的 vue-cli 开发环境做铺垫把很多文件打包整合到一起, 缩小项目体积, 提高加载速度其中功能:less/sass -> cssES6/7/8 -> ES5 处理js兼容支持js模块化处理css兼容性html/css/js -> 压缩

一个前端开发者 6万+

在 SAP ECC 中定义 ledger 时遇到 “Define exactly one leading ledger“(消息号 FAGL_LEDGER_CUST012)的错误

摘要:SAP系统要求必须且只能定义一个主导分类账(Leading Ledger)。当出现错误消息FAGL_LEDGER_CUST012时,需通过事务码FINSC_LEDGER或SPRO路径检查分类账配置,确保仅有一个分类账被标记为"LeadingLedger",其余设为"Non-leadingLedger"。主导分类账是SAP默认用于标准报表的核心分类账,修改配置需谨慎以免影响已有数据。若问题未解决,建议检查未完成配置或查阅SAP Notes获取解决方案。

金牌架构师 802

(精华)2020年7月10日 webpack webpack多环境配置

更好的维护代码,把 webpack.config.js 拆分成三个部分: 公 共 配 置 : 把 开 发 和 生 产 环 境 需 要 的 配 置 都 集 中 到 公 共 配 置 文 件 中 , 即 webpack.common.js 开发环境配置:把开发环境需要的相关配置放置到 webpack.dev.js 生产环境配置:把生产环境需要的相关配置放置到 webpack.prod.js 安装yarn add webpack-merge --dev 或者 npm i webpack-merge -D 生产文

愚公智库 55万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

(精华)2020年7月10日 webpack webpack基础配置详解

"scripts": { "build":"rimraf dist && webpack --config webpack.config.js --mode production", "dev": "webpack-dev-server --config webpack.config.js" } var webpack = require('webpack'); var path = require('path'); var glob = require("glob"); var

愚公智库 55万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

(精华)2020年7月10日 webpack webpack的安装

方式一:yarn命令安装: yarn global add webpack webpack-cli yarn add webpack webpack-cli --dev //简写 yarn add webpack webpack-cli -D –dev 指安装到devDependencies:开发时的依赖包 –save dependencies:运行程序时的依赖包 方式二:NPM命令安装: 或者: npm install webpack webpack-cli -g npm install webpa

愚公智库 55万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

webpack 原理分析与性能优化(2w字精华)

webpack webpack 最出色的功能之一就是,除了 JavaScript,还可以通过 loader 引入任何其他类型的文件。 Webpack 核心概念: Entry(入口):Webpack 执行构建的第一步将从 Entry 开始,可抽象成输入。 Module(模块):在 Webpack 里一切皆模块,一个模块对应着一个文件。Webpack 会从配置的 Entry 开始递归找出所有依赖...

qq_34230117的博客 536

webpack 精华文章

最近迁移 webpack1 到 webpack3 碰到了一些问题,还是通过一些文章,解决了问题。在这里做一个备份,方便以后使用。 从零搭建vue2+vue-router2+webpack3工程 Webpack 2 快速入门 webpack学习和实战 Webpack 2/3 中一些常见的优化措施 教你如何玩转webpack.DllPlugin webpack的性能优化 webpack打包分析与性能...

weixin_30533797的博客 87

(精华)2020年7月12日 webpack 常见插件的使用

重点插件plugin介绍 插件与模块解析的功能不一样, 模块解析是为了导入非es5格式js或其它资源类型文件, 定制了一些loader。 插件是对最后的打包文件进行处理的,也可以理解loader是为打包前做准备,plugin是打包再进行处理 官方插件的使用步骤(内置插件 2 步) 1 配置文件中导入 XxxxPlugin,constwp=require(XxxxPlugin) 2 在 plugins 这个数组中加入一个插件实例,newwp.XxxxPlugin({对象}) 第三方插件的使用步骤(第

愚公智库 55万+

webpack-dev-server 配置以及webpack教程

webpack是什么? 一开始我也不理解? 看了许多文档都是在扯淡,摞了一大堆,点子却没说到。当然我说的可能也不对,希望诸位取其精华,去其糟粕。 因为包括官方文档,虽然翻译说的是人话,但是你却找不出一点点有用的有效的信息。 至于其他人的就是罗里吧嗦一大堆。写这个,就是想说,这玩意其实很简单。包括在php上,就是php的blade指令。不过php是直接略过了。压根没当回事。是因为什么被搞复杂了。是因为每个人的思维不透明。才造成交流沟通的困难。我这里写这个就是希望可以帮助到大家。 webpack其实就两个关.

weixin_40254430的博客 5109

(精华)2020年7月10日 webpack html文件的编译

var htmlWebpackPlugin = require('html-webpack-plugin'); // 声明/dist的路径 为成绝对路径 module.exports = { // 模块解析 module: {}, // 插件 plugins: [ new htmlWebpackPlugin({ filename: path.resolve(DIST_PATH, 'index.html'), //就是 html 文件的文件名,默认是index.html

愚公智库 55万+

(精华)2020年7月12日 webpack 配置第三方 loader

file-loader:处理理静态资源模块,url-loader :处理图片 base64 yarn add file-loader-D 或者 npm install file-loader-D yarn add url-loader-D 或者 npm install url-loader-D module: { rules: [ { test: /\.(png|jpe?g|gif)$/, //use使⽤用⼀一个loader可以⽤用对象,字符串串,两个l

愚公智库 55万+

(精华)2020年7月12日 webpack 配置别名

resolve: { extensions: ['.js', '.vue', '.json'], alias: { 'src': srcPath, 'styles': srcPath+'/styles', 'images':srcPath+'/images', 'config':path.resolve(srcPath,'js/config.js') } },

愚公智库 55万+

webpack代码分离精华(转载)

webpack ensure相信大家都听过。有人称它为异步加载,也有人说做代码切割,那这 个家伙到底是用来干嘛的?其实说白了,它就是把js模块给独立导出一个.js文件的,然后使用这个 模块的时候,webpack会构造script dom元素,由浏览器发起异步请求这个js文件。 场景分析: 比如应用的首页里面有个按钮,点击后可以打开某个地图。打开地图的话就要利用百度地图的js,于是 我们不...

weixin_42727360的博客 331

webpack 教程 那些事儿03-webpack两大精华插件,热加载

本节主要讲述 webpack的两大经典开发调试插件,热插拔内存缓存机制 文章目录 1.html-webpack-plugin插件的使用 2.webpack-dev-middleware 插件登场 3.webpack-hot-middleware 为了左手 4.实现html模版更改自动刷新 5.本案例测试源码下载 html-webpack-plugin插件的使用...

weixin_30955341的博客 144

深入浅出webpack学习(6)--Plugin

今天看到webpack配置入门的一个系列,感觉不错,作为查阅资料备存。 转载一波: 这是有关书籍地址:http://webpack.wuhaolin.cn/ 这是我转载的地址:https://blog.youkuaiyun.com/weixin_34014555/article/details/88889226 Plugin Plugin用于扩展webpack功能,各种各样的Plugin几乎让Webpack可...

weixin_39499923的博客 212
上一篇: sublime license key
下一篇: webstorm 常用快捷键汇总
大叔0o0
博客等级 码龄10年 31粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值