首页 > 其他分享 >Webpack 面试题

Webpack 面试题

时间:2023-05-05 17:12:29浏览次数:55  
标签:面试题 app express Webpack webpack let true require

一、Webpack如何解决跨域问题?(三种方式)来源

1. 使用代理:服务端是别人的,使用这个方式

devServer:{
    proxy:{  // 重写的方式,把请求代理到express服务器上
        '/api':{
            target:'http://localhost:3000',
            pathRewrite:{'/api':''} // 若请求路径为 /user ,不是 /api/user,可以把/api替换为空
  } } },

2. 前端模拟数据

devServer:{
    // 模拟数据
    before(app){
        app.get('/user',(req,res)=>{
            res.json({name:'小白'})
        })
    }
}

3.  服务端是自己写的,就可以把前端代码启动到服务端上

// server.js
let express = require('express');
let app = express();
let webpack = require('webpack');

let middle = require('webpack-dev-middleware'); // 引入这个
let config = require('./webpack.config.js');    // 配置文件
let compiler = webpack(config);

app.use(middle(compiler))

app.get('/user',(req,res)=>{
    res.json({name:'小白2'})
})
app.listen(3001)

 

二、webpack 实现 Tree Shaking(webpack原文

1. 打开项目中package.json文件,开启全部文件 Tree Shaking(只针对exports后的文件进行打包,其他的会被清除)

{
  "name": "tree-shaking",
  "sideEffects": false, // 开启
  "version": "1.0.0",
  ...
}

2. 若 sideEffects 为数组形式,数组中存放的是不被Tree Shaking的文件

{
  "name": "tree-shaking",
  "sideEffects": ["./src/polyfill.js"],
  "version": "1.0.0",
  ...
}

3. 对第三方函式库优化时候,需打开 webpack.config.js 文件进行配置 uglifyjs 插件

注意:usedExports 才是 Tree Shacking,使用时会自动判断没使用的代码,并标记 unused harmony 的注解,要移除的话要另外使用 minify

const UglifyJsPlugin = require('uglifyjs-webpack-plugin');

module.exports = {
  ...
  optimization: {
    usedExports: true,
    minimize: true,
    minimizer: [
        new UglifyJsPlugin({
            uglifyOptions: {
                compress: { unused: true },
                mangle: false,
                output: {
                    beautify: true
                }
            },
        })
    ],
  }
};

标签:面试题,app,express,Webpack,webpack,let,true,require
From: https://www.cnblogs.com/gqx-html/p/17374644.html

相关文章

  • 软件测试面试题(带答案)
    1.请自我介绍一下(需简单清楚的表述自已的基本情况,在这过程中要展现出自信,对工作有激情,上进,好学)面试官您好,我叫###,今年26岁,来自江西九江,就读专业是电子商务,毕业后就来深圳工作,有三年的软件测试工程师的经验,我性格比较开朗,能和同事小伙伴友好相处。2.平时工作中是怎么去测的?(至......
  • 面试题——python后端开发
    Python和Java、PHP、C、C#、C++等其他语言的对比?python语言,是面向对象、直译式计算机程序设计语言,python语法简洁清晰,具有丰富和强大的类库。Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性......
  • 面试题 02.07(Java). 链表相交(简单)
    题目:本题与:力扣160相交链表一致给你两个单链表的头节点 headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回null。图示两个链表在节点c1开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构......
  • Nginx 面试题总结大全
    转载请注明出处:1介绍下nginx特点与常用模块2nginx特点详细3反向代理和正向代理4负载均衡策略有哪些5Nginx如何实现动静分离? 6Nginx常用命令有哪些?7Nginx进程模型8nginx是四层协议还是七层的 9nginx如何自定义负载均衡......
  • TypeScript 面试题
    一、TypeScript是什么?JavaScript是一种解释型的脚本语言,基于对象,跨平台的特性,活跃于各大网站制作中。而TypeScript则是以JavaScript作为基础,并对其扩展的一种新的语言, 二、TypeScript的内置数据类型有哪些?数字类型:用于表示数字类型的值。TypeScript中的所有数字都存储为浮......
  • 2023前端面试题一
    元素类型空元素brhr块级元素divfooterheadersectionph1h6行内元素imginputspan元素类型转换display:block独占一行,可以设置宽高display:inline不独占一行,不可以设置宽高display:inline-block不独占一行,可以设置宽高样式导入方式link@import......
  • Axios 面试题
    一、Axios是什么?Axios是一个基于promise的网络请求库,可用于node.js和浏览器中。它是isomorphic的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生node.jshttp模块,而在客户端(浏览器端)则使用XMLHttpRequests。特性1.从浏览器创建XMLHttpRequests,从node.js创......
  • Redux 面试题
    1、什么是Redux?Redux用于全局的状态管理 2、为什么在React项目中要使用Redux?因为React是单向数据流的,数据只能从父组件通过props流向子组件,但如果子组件要想修改父组件的值,就只能通过给绑定函数传递参数的形式来修改,一旦项目中数据比较复杂时,这种形式会搞得一团糟,所以需要Re......
  • 网络协议面试题
    1.TCP和UDP的区别?答:TCP是面向连接的传输协议,提供可靠的数据传输和错误检测,适用于对可靠性要求较高的场景,如文件传输,网页访问等;UDP是无连接的传输协议,不保证传输的可靠性,适用于对实时性要求较高的场景,如视频会议,音频传输等。2.OSI参考模型和TCP/IP协议模型的区别是什么?......
  • React 中 Router的相关面试题
    一、请你说说react的路由是什么?React的路由是纯前端的路由,就是根据hash或browserpath的变化,框架内封装好了方法,可以自由的切换DOM展示,来模拟页面或局部页面被替换的目的;让浏览器不用刷新,也能获取想要的页面结构,保存内存数据,提升用户体验 二、React-Router实现原理?当url发......