当前位置: 首页 > news >正文

优化网站速度的要点电商运营培训课程有哪些

优化网站速度的要点,电商运营培训课程有哪些,以蓝色为主色调的网站,html网页模板简洁背景 在尝试让 ChatGPT 自动开发一个桌面壁纸更改的功能时,发现引入了一个 wallpaper 库,这个库的入口文件是 index.js,但是 package.json 文件下的 type:"module",这样造成了无论你使用 import from 还是 require&…

背景

在尝试让 ChatGPT 自动开发一个桌面壁纸更改的功能时,发现引入了一个 wallpaper 库,这个库的入口文件是 index.js,但是 package.json 文件下的 type:"module",这样造成了无论你使用 import from 还是 require,都会报 ES Module 引入错误,针对于这个问题,让 GPT 给了很多方案,但是都没有解决实质问题,最终,经过多次测试,发现必须借助打包工具 webpack 才能搞定这个事情。

案例代码

node version:16

这个是用的wallpaper库,这个库有bug,双屏幕失效

simple-electron-demo: 从一个简单的electron初始库开始从零解说electron的运行过程 - Gitee.com

另外在B站上看到一个视频也是搞壁纸的,对方的代码无法运行 node:18 作者也没修复,里面看用的koffi 调用一个dll,这个dll估计是作者自己打的动态连接库,但是这个没有地方可以控制伸缩,代码也放在这里

simple-electron-demo: 从一个简单的electron初始库开始从零解说electron的运行过程 - Gitee.com

B站视频连接(作者堆了一堆buffer,然后把代码搞到build报错,实际上一个前端开发真没必要用typescript和vue3这些东西,尤其是vite,给开发带不来任何效率提升,却外加了很多不必要学习的知识,就是前端内卷的一种方式吧)

Vue3+electron实现桌面壁纸更换2.0版本(已完成macOS静态壁纸更换,后续功能开发中)_哔哩哔哩_bilibili

 注意:如你遇到vue-tsc.js 68行错误的报错,按照作者的提示,直接注释这行,然后就可以build:win

 

webstorm的使用用户会遇到没有提示的问题,建议将tsconfig.web.json中的别名,拷贝到tsconfig.json 中,webstorm识别不强,这样@renderer路径就能被识别了,另外关掉eslint提示,这个会造成一堆报错,还没啥意义

 

Electron 官网对 ES Module 的建议

Electron中的 ES 模块 (ESM) | Electron

没有看太懂,大概就是必须开启 type:"module",然后引入的 js 必须是.mjs后缀,否则就会报错,另外大家就是讲了在哪些情况,你开了 module 就会导致渲染进程无法访问 node_modules 中的文件,也无法访问 node api 接口

一个 ES Module 库:wallpaper

它的入口文件是 index.js 而 package.json 中 type 设为 module,这就使得引入这个库的 wallpaper 也得支持 type:"module",否则无法使用这个库,一般像 vue,都会给两个字段,一个是 main,一个是 module,以任意一种项目选择性引入

那么 ES Module 怎样才能正常使用?

  1. webpack 打包后的代码一般我们从来都不会遇到这种 ES Module 的问题,原因是 webpack 打包会把所有的代码都进行预编译整合,也即将代码从 node_module 拷贝出来,然后再经过 babel 等的转化,塞入打包后的代码里,最后统一用 require 的方式进行引入

  2. 而基于 electron 的开发,所有的 js 都可以取自本地,因为基于 commonJS 协议的方式更符合开发本地开发方式,因此 Webpack 可以把一些代码不打包进去,直接保留 require("vue") 引入方式,这样不但降低了最终打包文件的体积大小,还能动态的引入所需的代码,整体性能就很高

  3. 所以白名单这里就是不让 webpack 打包,默认整个生产依赖都要打包进去

  4. 但是 wallpaper 默认是 ES Module 就必须转化成 CommonJS 形式,于是就把代码进行预编译,然后塞到 main.js 中去,这样 wallpaper 整个源码就被构建进去了,也就不存在原来 type:"module"引入的概念

总结

  1. webpack打包 electron 都是基于 CommonJS 方式,使用的是 require 来引入

  2. 如果遇到 ES Module 模块,则将其加入到 whiteListModules 列表中,直接打包到 webpack 里面即可

  3. 其他没有什么好办法,能让 electron 既支持 CommonJS 又支持 ES Module,两者天然冲突

  4. 也没有必要去理解这方面的问题,因为大部分情况,都被 webpack 搞定了

  5. 除非你自己想从零构建一个纯粹的 ES Module 项目,但是只要你给别人用,或者引用别人的代码,那么要改后缀名为.cjs,目前我觉得你是得头大的

  6. 无论是源码用了多少 import from 的写法,webpack 最终都是给你整合成 require,fetch 的方式来搞事情

http://www.dinnco.com/news/14090.html

相关文章:

  • 省交通建设质安监督局网站百度优化大师
  • 网站怎么做导航下载百度到桌面上
  • 系部网站建设管理方案快速网站排名提升工具
  • 招标网站靠谱吗公众号软文范例100
  • 怎样建个小公司的网站企业网络营销推广方案策划范文
  • 有什么公司做网站好专业制作网站的公司哪家好
  • 网页无法打开搜索引擎优化特点
  • 沙田镇网站仿做南京百度seo排名
  • 17网站一起做网店池尾抖音推广方案
  • 企业官方网站是什么免费下载b站视频软件
  • 网站运营经验分享ppt列举五种网络营销模式
  • Wordpress嵌套其他网站廊坊关键词优化报价
  • 宝安做网站怎么样网页制作代码模板
  • c 做网站seo手机关键词排行推广
  • 网站返回首页按钮北京疫情最新消息
  • 宠物食品 中企动力提供网站建设网店运营怎么学
  • 江阴网站建设推广近日发生的重大新闻
  • 网站建设 考虑百度推广找谁做靠谱
  • 九江网站建设排行榜网络营销网站有哪些
  • 网站建设规模与类别电子商务推广方式
  • 东莞做购物网站济南全网推广
  • 网站 建设 维护 公司怎么建网站教程图解
  • 流程网站设计seo页面如何优化
  • 网站制作多少钱资讯推广联盟平台
  • 兄弟们试试这个网址合肥关键词排名优化
  • 企业网站鉴赏如何推广自己的店铺
  • 个人网站logo设计今日头条搜索引擎
  • 网站怎么做站群百度经验app
  • 淘宝现在不能发布网站建设seo关键词平台
  • 开公司要多少注册资金seo在哪学