手写webpack原理

接使用eval 会造成 全局变量污染,解决办法:使用闭包 (自执行函数)
Document
手写 require方法
Document
导入多个模块
Document

合集

webpack手写打包

1.进入目录先安装 package.json : npm install

2.node ./webpack.js 执行

3.打包后 得到一个文件 dist/bundle.js

目录:

|-- babel_webpack

|-- index.html

|-- package.json

|-- webpack.js

|-- src

|-- add.js

|-- index.js

index.html
Document
webpack.js

const fs = require(‘fs’);

const path = require(‘path’);

// ast

const parser = require(‘@babel/parser’);

// 节点遍历

const traverse = require(‘@babel/traverse’).default;

// es6 - 5

const babel = require(‘@babel/core’);

// 分析依赖

function getModuleInfo(file) {

const body = fs.readFileSync(file, ‘utf-8’);

const ast = parser.parse(body, { sourceType: ‘module’ });

// 依赖收集 import xxx

const deps = {};

traverse(ast, {

ImportDeclaration({ node }) {

const dirname = path.dirname(file);

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

正值金三银四招聘旺季,很多小伙伴都询问我有没有前端方面的面试题,特地整理出来赠送给大家!

资料领取方式:点击这里前往免费获取

-dlOe23qw-1713837433565)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

[外链图片转存中…(img-g79c9tKt-1713837433565)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

[外链图片转存中…(img-YEZ9t9Oj-1713837433565)]

最后

正值金三银四招聘旺季,很多小伙伴都询问我有没有前端方面的面试题,特地整理出来赠送给大家!

资料领取方式:点击这里前往免费获取

前端资料图.PNG

  • 9
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 和 Webpack 是开发现代前端应用程序的两个重要工具。Vue 是一个用于构建用户界面的渐进式 JavaScript 框架,而 Webpack 是一个模块打包工具。 Vue 的核心思想是将界面的不同部分抽象为组件,每个组件有自己的模板、样式和逻辑。Vue 在运行时会解析组件,并且通过虚拟 DOM 的方式进行高效的渲染和更新。 Webpack 则是一个用于打包模块的工具。它可以将各种类型的资源文件(JavaScript、CSS、图片等)作为模块进行处理,并将它们打包成静态文件,以用于浏览器端的加载和运行。 在 Vue 项目中使用 Webpack,通常会通过 webpack.config.js 文件进行配置。在配置中,我们可以定义入口文件、输出目录、加载器(Loaders)、插件(Plugins)等。 入口文件指定了 Vue 应用程序的入口点,通常是一个 JavaScript 文件。Webpack 会从这个入口文件开始,分析依赖关系,并且构建整个应用程序的依赖图。 加载器是用于处理各种类型文件的模块转换器。例如,Babel-loader 可以将 ES6+ 的 JavaScript 代码转换为兼容各种浏览器的 JavaScript 代码;CSS-loader 可以处理 CSS 文件,并将其转换为 JavaScript 对象;File-loader 可以处理图片文件,并将其转换为可在浏览器中使用的 URL。 插件是用于扩展 Webpack 功能的工具。例如,Vue-loader 插件可以将 Vue 的单文件组件(.vue)转换为 JavaScript 代码;HtmlWebpackPlugin 插件可以自动生成 HTML 文件,并将打包后的静态文件自动引入到 HTML 中。 总结起来,Vue 使用 Webpack 实现了模块化的开发方式,通过加载器和插件的配合,可以实现对各种类型文件的处理和打包。这样就能够以组件化的方式构建 Vue 应用程序,并且通过 Webpack 进行打包和优化,使应用程序更加高效和可维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值