webpack v4+升级v5+ 踩坑笔记

踩坑笔记

(希望能持续更新…)
工作中遇到了一个小问题,然后搞了两天,怀疑是webpack的问题,因此升级了现有项目的webpack,webpack v4+ 升级到了 v5, node v12+ 升级到了 node v16+, 本来打算升v17的, 发现和16版本改动不小, 和开发其他项目还得切回了, 索性就降到了v16,因此node升级到v17,要慎重啊!!!

升级依赖
想着既然webpack都升级了, 那依赖也升了吧,
先下载个 npm-check-updates  
 	yarn global add npm-check-updates 

可以先 ncu 查看一下需要升级的依赖, 然后 ncu -u 依赖全部升级
npm-check-updates github地址

小case

1、 如果之前配置了node,那么就会报错, Webpack 5 不再自动填充 Node.js 核心模块,这意味着如果您在浏览器或类似设备中运行的代码中使用它们,您将必须从 npm 安装兼容的模块并自己包含它们
就需要让你去resolve.fallback,里面配置,去引用依赖,如果不用的话,就给个false;

2、运行打包的时候,发现我的目录下多了几张svg,png的图片, 本来打算看一下是什么图片的, 还打不开, 提示文件损坏, 查了一下资料发现, 原来css-loader(6.7.1) 现在也开始打包背景图片了,这小子野心还挺大,这不行啊,得处理掉。(配置一下图片的处理 增加 esModule:false, type:‘javascript/auto’

// module.rules 
{
   
    // TODO 位置需要调整下,不然拿到的路径不对。
    test: /\.(png|svg|jpg|gif|ico)$/,
    use: [{
   
        loader: 'file-loader',
        options: {
   
            esModule:fal
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
很抱歉,作为AI语言模型,我无法提供完整的代码。不过我可以给您一些指引: 1. 在Vue3项目中集成Cesium离线版本,需要先安装Cesium离线版本的npm包。可以使用以下命令安装: ``` npm install cesium-offline ``` 2. 在webpack配置文件中添加Cesium相关的配置。Cesium离线版本需要一些额外的配置才能正常运行。以下是一个示例配置: ``` const CopyWebpackPlugin = require('copy-webpack-plugin') const cesiumSource = 'node_modules/cesium-offline/Build/Cesium'; module.exports = { // ... output: { // ... sourcePrefix: '' }, amd: { // Enable webpack-friendly use of require in Cesium toUrlUndefined: true }, resolve: { alias: { // Cesium module name cesium: path.resolve(__dirname, cesiumSource) } }, module: { // ... unknownContextCritical: false, rules: [ { test: /\.(png|gif|jpg|jpeg|svg|xml|json)$/, use: ['url-loader'] }, { test: /\.css$/, use: ['style-loader', 'css-loader'] } ] }, plugins: [ // Copy Cesium Assets, Widgets, and Workers to a static directory new CopyWebpackPlugin({ patterns: [ { from: path.join(cesiumSource, 'Assets'), to: 'Assets' }, { from: path.join(cesiumSource, 'Widgets'), to: 'Widgets' }, { from: path.join(cesiumSource, 'Workers'), to: 'Workers' }, { from: path.join(cesiumSource, 'ThirdParty/Workers'), to: 'ThirdParty/Workers' } ] }) ] } ``` 3. 在Vue组件中使用Cesium。在Vue组件中,可以使用Cesium的全局变量`Cesium`来创建地图等组件。以下是一个示例组件: ``` <template> <div id="cesiumContainer"></div> </template> <script> import { defineComponent } from 'vue' import * as Cesium from 'cesium/Cesium' export default defineComponent({ mounted() { const viewer = new Cesium.Viewer('cesiumContainer') viewer.entities.add({ position: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883), point: { pixelSize: 10, color: Cesium.Color.RED } }) } }) </script> ``` 在这个示例组件中,我们使用了Cesium创建了一个简单的地图,并在地图上添加了一个红色的点。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值