MsFine抖M大神作品集:挑战入门级欧美口味52V19.2G
这期的资源大家一定要抓紧机会下载...
2025-02-23

本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。
这是官网对webpack的解释。提到模块,模块顾名思义是独立的JS文件。与之相近的词模块化,通俗地讲就是我们平时组织和管理代码方法的一种实现。
我们先来测试一下webpack的打包。
创建项目目录
mkdir webpackmini 2.安装webpack依赖
yarn add webpack -D or
npm install webpack -D 3.安装webpack-cli依赖 这里,稍微注意一下,我们可以下载这个版本的,最新版的安装之后好像不可用。
yarn add webpack-cli@3.3.12 -D or
npm install webpack@3.3.12 -D 1.创建项目主目录
mkdir src 2.创建入口文件
touch main.js 3.编辑入口文件
我们这里使用最简单的一行代码。
console.log('maomin1'); 在项目根目录下键入命令:
touch webpack.config.js 并编辑。
const path = require('path'); module.exports = { mode:'development', entry:'./src/main.js', output:{ path:path.resolve(__dirname,'dist'), filename:'bundle.min.js' }} 我们这里使用 npx webpack 命令进行打包。打包成功!
我们来到打包好的bundle.min.js文件,会看到以下代码:
/* * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)* or disable the default devtool with "devtool: false".* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "./src/main.js": /*!*********************!* !*** ./src/main.js ***! *********************/ /***/ (() => { eval("console.log('maomin1');nn//# sourceURL=webpack://webpackmini/./src/main.js?"); /***/ }) /******/ }); /************************************************************************/ /******/ /******/ // startup /******/ // Load entry module and return exports /******/ // This entry module can't be inlined because the eval devtool is used. /******/ var __webpack_exports__ = {}; /******/ __webpack_modules__["./src/main.js"](); /******/ /******/ })() ; 我们将注释删掉后,会精简不少!
(() => { var __webpack_modules__ = ({ "./src/main.js": (() => {eval("console.log('maomin1');nn//# sourceURL=webpack://webpackmini/./src/main.js?");}) }); var __webpack_exports__ = {}; __webpack_modules__["./src/main.js"]();})(); 开始实战实现一个基础版的webpack。
1.首先我们在项目根目录下创建一个文件夹。
mkdir maominpack 2.然后,在maominpack文件夹下创建一个bin文件夹
mkdir bin 3.最后在bin文件夹下创建一个maominpack.js文件
编辑如下:
#!/usr/bin/env nodeconst fs = require('fs'); const ejs = require('ejs');const config = require('../../webpack.config.js');const entry = config.entry;const output = `${config.output.path}/${config.output.filename}`;const content = fs.readFileSync(entry,'utf8');let template = ` (() => { var __webpack_modules__ = ({ "<%-entry%>": (() => { eval("<%-content%>"); }) }); var __webpack_exports__ = {}; __webpack_modules__["<%-entry%>"](); })() ; `let package = ejs.render(template,{ entry, content}); fs.writeFileSync(output,package); 首先,我们在头部指定环境为node环境,并且引入fs模块。然后,我们引入了ejs依赖,如果不是很了解ejs的,可以去官网浏览下。这里就简单的介绍一下。
我们看到在将带有绑定值的字符串赋值给template变量,我们这里使用的ejs.render(),第一个参数是需要处理的字符串,第二个参数使我们需要修改的值,是一个对象。
4.在package.json文件下编辑如下:
{ "name": "maominpack", "version": "1.0.0", "bin":{ "maominpack":"bin/maominpack.js" }, "main": "index.js", "license": "MIT" } 5.为其命令创建快捷方式
npm link 6.为其配置在其他目录也可使用此命令
npm config ls 7.验证打包
我们将src/main.js修改一下。
console.log('maomin2'); 然后,键入命令:
maominpack 最后,检查一下bundle.min.js:
(() => { var __webpack_modules__ = ({ "./src/main.js": (() => { eval("console.log('maomin2');"); }) }); var __webpack_exports__ = {}; __webpack_modules__["./src/main.js"]();})() ; 发现,我们打包成功了。这里我们只是实现了最基础的字符串替换打包功能,webpack还有很多值得玩的特性。
以上内容就是为大家推荐的webpack入门教程(webpack入门知识详细介绍)最佳回答,如果还想搜索其他问题,请收藏本网站或点击搜索更多问题
内容来源于网络仅供参考版权声明:所有来源标注为小樱知识网www.xiaoyin02.com的内容版权均为本站所有,若您需要引用、转载,只需要注明来源及原文链接即可。
本文标题:webpack入门教程(webpack入门知识详细介绍)
本文地址:https://www.xiaoyin02.com/shcs/121681.html
相关文章
大家好,今天我要给大家介绍一部非常火爆的视频资源,它就是P站Ms Fine入门级别微口味重G交-洋马小扩张 合集二[30V-9.7G]...
2023-11-28
大家好,今天我要为大家介绍一部名为《P站Ms Fine入门级别微口味重G交-洋马小扩张 合集一》的视频资源...
2023-11-28
大家好,今天我要给大家介绍一部名为《P站Ms Fine入门级别微口味重G交-洋马小扩张 合集二》的视频资源...
2023-11-17
热点文章
2021年独生子女补贴新政策是真的吗(独生子女证有有效期吗)
2021年国庆节阅兵仪式几点开始几点结束(2021年国庆节还有阅兵吗)
鼠目寸光一点红是什么生肖动物(鼠目寸光一点红)指什么生肖,紧密
k0到k9的玩法大全(强制gc的玩法和注意事项)
入土为安是什么生肖《入土为安》打一个生肖动物,词语解释
浙江12月底全面停工是真的吗(浙江什么时候放假停工)
如何做t(t怎么把p做哭)
北京口碑最差的三甲医院(北京301医院最擅长什么)