问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

webpack html-loader这个是针对img的吗

提问网友 发布时间:2022-04-20 10:05
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
2个回答
热心网友 回答时间:2022-04-07 12:10
CommonJs与AMD
在一开始,先讲一下它和以往所用的模块管理工具有什么不一样。在最开始的阶段,Js并没有这些模块机制,各种Js到处飞,得不到有效妥善的管理。后来前端圈开始制定规范,最耳熟能详的是CommonJs和AMD。
CommonJs是应用在NodeJs,是一种同步的模块机制。它的写法大致如下:
var firstMole = require("firstMole");

//your code...

mole.export = anotherMole

AMD的应用场景则是浏览器,异步加载的模块机制。require.js的写法大致如下:
define(['firstMole'], function(mole){

//your code...
return anotherMole
})

其实单比较写法,就知道CommonJs是更为优秀的。它是一种同步的写法,对Human友好,而且代码也不会繁琐臃肿。但更重要的原因是, 随着npm成为主流的JavaScript组件发布平台,越来越多的前端项目也依赖于npm上的项目,或者自身就会发布到npm平台。 所以对如何可以使用npm包中的模块是一大需求。所以browserify工具就出现了,它支持直接使用 require() 的同步语法去加载npm模块。
当然这里不得不说的是,ES2015(ES6)里也有了自己的模块机制,也就是说ES6的模块机制是官方规定的,通过 babel (一种6to5的编译器)可以使用比较多的新特性了,包括提到的模块机制,而它的写法大致如下:
import {someMole} from "someMole";

// your codes...

export anotherMole;

当然上面的写法只是最基本的,还有其他的不同加载模块的写法,可以看一下阮一峰老师的 ECMAScript 6 入门 或者babel的相关文档 Learn ES2015 。
功能特性
browserify的出现非常棒,但webpack更胜一筹!
来看看webpack支持哪些功能特性:
支持CommonJs和AMD模块,意思也就是基本可以无痛迁移旧项目。
支持模块加载器和插件机制,可对模块灵活定制。特别是最爱的babel-loader,有效支持ES6。
可以通过配置,打包成多个文件。有效利用浏览器的缓存功能提升性能。
将样式文件和图片等静态资源也可视为模块进行打包。配合loader加载器,可以支持sass,less等CSS预处理器。
内置有source map,即使打包在一起依旧方便调试。
看完上面这些,可以想象它就是一个前端工具,可以进行各种模块加载,预处理后,再打包。之前对这些的处理是放在grunt或gulp等前端自动化工具中。有了webpack,无需借助自动化工具对模块进行各种处理,让工具的任务分的更加清晰。
热心网友 回答时间:2022-04-07 13:28
CommonJs与AMD
在一开始,我们先讲一下它和以往我们所用的模块管理工具有什么不一样。在最开始的阶段,Js并没有这些模块机制,各种Js到处飞,得不到有效妥善的管理。后来前端圈开始制定规范,最耳熟能详的是CommonJs和AMD。
CommonJs是应用在NodeJs,是一种同步的模块机制。它的写法大致如下:
var firstMole = require("firstMole");

//your code...

mole.export = anotherMole

AMD的应用场景则是浏览器,异步加载的模块机制。require.js的写法大致如下:
define(['firstMole'], function(mole){

//your code...
return anotherMole
})

其实我们单比较写法,就知道CommonJs是更为优秀的。它是一种同步的写法,对Human友好,而且代码也不会繁琐臃肿。但更重要的原因是, 随着npm成为主流的JavaScript组件发布平台,越来越多的前端项目也依赖于npm上的项目,或者自身就会发布到npm平台。 所以我们对如何可以使用npm包中的模块是我们的一大需求。所以browserify工具就出现了,它支持我们直接使用 require() 的同步语法去加载npm模块。
当然我们这里不得不说的是,ES2015(ES6)里也有了自己的模块机制,也就是说ES6的模块机制是官方规定的,我们通过 babel (一种6to5的编译器)可以使用比较多的新特性了,包括我们提到的模块机制,而它的写法大致如下:
import {someMole} from "someMole";

// your codes...

export anotherMole;

当然上面的写法只是最基本的,还有其他的不同加载模块的写法,可以看一下阮一峰老师的 ECMAScript 6 入门 或者babel的相关文档 Learn ES2015 。
功能特性
browserify的出现非常棒,但webpack更胜一筹!
我们来看看webpack支持哪些功能特性:
支持CommonJs和AMD模块,意思也就是我们基本可以无痛迁移旧项目。
支持模块加载器和插件机制,可对模块灵活定制。特别是我最爱的babel-loader,有效支持ES6。
可以通过配置,打包成多个文件。有效利用浏览器的缓存功能提升性能。
将样式文件和图片等静态资源也可视为模块进行打包。配合loader加载器,可以支持sass,less等CSS预处理器。
内置有source map,即使打包在一起依旧方便调试。
看完上面这些,可以想象它就是一个前端工具,可以让我们进行各种模块加载,预处理后,再打包。之前我们对这些的处理是放在grunt或gulp等前端自动化工具中。有了webpack,我们无需借助自动化工具对模块进行各种处理,让我们工具的任务分的更加清晰。

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

相关推荐
  • 使用html-webpack-plugin'入再内存中生成html页面插件

    使用html-webpack-plugin'入再内存中生成html页面插件

    使用html-webpack-plugin'入再内存中生成html页面插件:我们在打包webpackjs文件的时候,在index.html界面引人 全局main.js ,如图下: 必须引入 src ='budl.js' 打包的时候,未打包分为两个文件,一个本地磁盘文件,一个是内存中的文件,这样一来是不是特别麻烦,面对这个问题我们又了方法解决,html-web
    查看详情
  • 关于html-webpack-plugin的详细介绍

    关于html-webpack-plugin的详细介绍

    关于html-webpack-plugin的详细介绍:引言最近在react项目中初次用到了html-webapck-plugin插件,用到该插件的两个主要作用:为html文件中引入的外部资源如script、link动态添加每次compile后的hash,防止引用缓存的外部文件问题可以生成创建html入口文件,比如单页面可以生成一个html文件
    查看详情
前端构建工具webpack有什么缺陷 Gulp和webpack的区别,是一种工具吗 hpwebpack干嘛用的 关于办理米粉卡 我能办米粉卡吗 怎么办米粉卡 我办理米粉卡后可以将自己原来的手机号植入到米粉... 办一个小型粉条加工厂总共需要投资多少钱? 菠菜办粉丝怎么做好吃 衣服染色了怎么办粉红色衣服染上了蓝色,用彩漂水漂了 为什么安贞医院不办粉红色的本字要我到我老公办结... 如何办粉条厂 问道武器上粉出的伤害怎样才能强化满?后面的百分... 凉办粉丝怎么做好吃 手机发短信能办粉砖吗 混呢宝不人么有,够奶合怎还奶奶?有呀喂没养水喝... 增肌粉和蛋办粉有没有附作用?是否含激素 办粉丝粉条厂能赚钱吗 办粉砖的话死去的QQ宠物能复活么 淡奶油预办粉没过保质期可以用吧? 如何评价 Webpack 2 新引入的 Tree-shaking 代码优... 如何用webpack打包一个网站应用 Webpackz 最近非常火 谁能说下大概的意思是什么 看... webpack中output.publicPath是不是鸡肋 webpack多页面怎么使用 iPhone SE2+16和红米note33+32哪个更合算一些? 十六岁用iPhone se2怎么样? 肺小结节se2lm22 16 17 26是什么意思 苹果se2和se是不是一样的 苹果手机se2升级ios15.2怎么样? 两肺多发小结节(SE2ⅰM8、16、18、20、22、24、29)... 长安Cs75LS4ASE2A7GJ150856是16年手动2.O豪华版新... se2和se3色差大么 安川G7 SE2代码是什么 捷安特13年xtc750和 atxse2哪个值得购买 步步高V206怎么样 步步高V206的重要参数 步步高音乐手机V206机型怎么会停产问? 步步高v206的上市时间? 天语V206怎样
Top