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

成都市公园城市建设管理局网站佛山公司注册网页

成都市公园城市建设管理局网站,佛山公司注册网页,app开发哪家强,南京网站建设网站制作 雷仁网络背景:开发一个大屏项目中,需要是要DataV的那边边框,装饰等,只是DataV是基于vue2的,vue3版的作者还在开发中,于是翻了DataV的源码,发现使用esm方式时是直接引入源码而不经过打包,其源码中使用的vue语法vue3也支持,所以可以直接在vue3中引入使用. vite,vue3项目直接引入DataV 安…背景:开发一个大屏项目中,需要是要DataV的那边边框,装饰等,只是DataV是基于vue2的,vue3版的作者还在开发中,于是翻了DataV的源码,发现使用esm方式时是直接引入源码而不经过打包,其源码中使用的vue语法vue3也支持,所以可以直接在vue3中引入使用. vite,vue3项目直接引入DataV 安装 npm install jiaminghi/data-view使用 import dataV from jiaminghi/data-view;app.use(dataV)引入后报错 template v-for 绑定key 解决方式: 使用patch-package给源码打补丁 报错Uncaught SyntaxError: The requested module /node_modules/jiaminghi/c-render/lib/index.js?vc576b840 does not provide an export named default 这是因为vite开发时会对依赖进行预构建,由于dataV源码中引入了其他commonjs包,而vite没有将这些依赖预构建转成esm,所以需要在vite.config.js中配置告知vite哪些依赖需要转成esm格式,配置在optimizeDeps.include,就可以愉快使用了. 配置如下: export default defineConfig({// ... 省略其他配置optimizeDeps: {// 开发时 解决这些commonjs包转成esm包include: [jiaminghi/c-render,jiaminghi/c-render/lib/plugin/util,jiaminghi/charts/lib/util/index,jiaminghi/charts/lib/util,jiaminghi/charts/lib/extend/index,jiaminghi/charts,jiaminghi/color,],},build: {// 打包时需要另外处理的commonjs规范的包commonjsOptions: {include: [/node_modules/, // 必须包含],},}, });fork一份dataV源码添加多vue3打包方式,发布npm包 iamzzg/data-view仓库地址 改造过程 增加打包入口文件 源码构建源码 增加入口文件: 打包过程中发现缺少rollup和less,需要安装,为了同时打包vue2和vue3的格式,需要编译vue文件,vue2需要vue-template-compiler,vue3需要vue/compiler-sfc,对应的rollup-plugin-vue版本是6和5.1.6 修改了rollup.config.js配置的插件顺序,否则打包不了 import resolve from rollup-plugin-node-resolve; import vue from rollup-plugin-vue; import commonjs from rollup-plugin-commonjs; import babel from rollup-plugin-babel; import postcss from rollup-plugin-postcss; import vue2 from rollup-plugin-vue2;const bundleFormats [umd, esm, cjs, iife]; const vueVersions [vue2, vue3];const isVue3 (v) v vue3; const isUmd (v) v umd; const isCjs (v) v cjs; const isIife (v) v iife;const getRollupConfig (bundleFormat, vueVersion vue2) {const vuePlugin isVue3(vueVersion) ? vue : vue2;return {input: build/${isVue3(vueVersion) ? vue3-entry/ : }entry.${bundleFormat}.js,output: {format: bundleFormat,file: dist/${isVue3(vueVersion) ? vue3/ : }datav.map.vue.${isUmd(bundleFormat) ? : bundleFormat .}js,name: datav,...(isUmd(bundleFormat) || isIife(bundleFormat)? {globals: {// 模块名: 变量名vue: Vue,},}: {}),...(isCjs(bundleFormat) ? { exports: named } : {}),...(isUmd(bundleFormat) isVue3(vueVersion) ? { exports: default } : {}),},plugins: [// rollup-plugin-vue 6.0.0版本 插件必须放在第一,需要postcss插件处理,sfc使用less,需安装lessvuePlugin({preprocessStyles: true,// 预处理css}),resolve(),babel({exclude: node_modules/**,}),commonjs(),postcss(),],// 外部包external: [vue],}; };const configs []; bundleFormats.forEach((format) {vueVersions.forEach((vueVersion) {const config getRollupConfig(format, vueVersion);configs.push(config);}); });export default configs;发布npm包 修改包名为iamzzg/data-view npm login npm publish --accesspublic打包后Vue3使用方式 datav 打包成 vue3 的版本在 dist/vue3 文件夹下 umd 使用方式 未托管到 cdn,可以直接复制dist/vue3/datav.map.vue.js script srcdist/vue3/datav.map.vue.js/script script// app是createApp()的返回值app.use(datav); /scriptesm 使用方式 安装 npm i iamzzg/data-view全局注册 import datav from iamzzg/data-view/dist/vue3/datav.map.vue.esm;app.use(datav);按需导入,和 vue2 方式一致 import { borderBox1 } from iamzzg/data-view/dist/vue3/datav.map.vue.esm; app.use(borderBox1);
http://wiki.neutronadmin.com/news/446495/

相关文章:

  • 少主网络建站中介房产cms
  • 中国工程建设招聘信息网站爱站网爱情电影网
  • 东莞seo网站排名花生壳域名还免费吗
  • 甘肃网站建设推广服务海南建设网站
  • 电子商务网站建设的步骤一般网站分页符怎么做
  • 1006网站建设wordpress 多域名绑定域名
  • 企业网站怎么做科室网站建设
  • 天津做企业网站家用宽带怎么做网站 访问
  • 上海网站群建设深圳定制网站制作
  • 如何微信做演讲视频网站什么是网络营销啊
  • 南昌网站建设公司排行榜前十潍坊网站建设评价
  • 网站如何申请网站建设需要哪些费用支出
  • 沈丘做网站去哪里网站推广策划评估工具7
  • 个人音乐类网站服务器租借php怎么做直播网站
  • 国内优秀html网站小企业网站服务器
  • 个人业务网站免费制作南京做网站公司哪家好
  • 网站做支付需要什么备案手赚网 类似网站怎么建设
  • 国外h5汇总网站简洁大气网站源码
  • 成功英语网站电子商务网站建设主题
  • 为什么要建设图书馆网站手机创建网站免费注册
  • 展示网站欣赏淄博市沂源县城乡建设局网站
  • 电商建设网站资源丰富免费的网站推荐排名
  • 叫什么公子的网站做ppt的重庆九龙坡区网站建设
  • 上海企业免费网站建设淘宝详情页模板
  • 网站后台英文网站下载软件入口
  • 如何查到网站是谁做的app开发公司推荐
  • 潍坊网站建设app北京企业模板建站有哪些
  • 站长统计代码做云教育集群网站
  • 柏乡企业做网站中国开头的网站怎么做
  • 软件开发工程师报考条件沧州百度seo