广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >weex默认webpack.config.js改造的示例分析
  • 832
分享到

weex默认webpack.config.js改造的示例分析

2024-04-02 19:04:59 832人浏览 独家记忆
摘要

这篇文章给大家分享的是有关weex默认webpack.config.js改造的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:解决的问题:由于weex默认的WEB

这篇文章给大家分享的是有关weex默认webpack.config.js改造的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

具体如下:

解决的问题:

由于weex默认的WEBpack配置,会导致在src文件夹下的每一个.Vue在temp文件夹下生成对应的一个.js文件,该js文件有一段这样的代码

contents += 'var App = require(\'' + relativePath + '\')\n';
 contents += 'App.el = \'#root\'\n';
 contents += 'new Vue(App)\n';

会导致多个vue对象挂载同一个id(#root),导致整个页面就只有一个vue对象,无法像写spa项目一样写weex项目,因此在这里对webpack.cofig进行改造(添加一个entry.js入口js文件,和一个最外层的App.vue承载路由渲染)

默认的webpack.config.js文件中,有两个方法

第一个 getEntryFileContent

const getEntryFileContent = (entryPath, vueFilePath) => {
 let relativePath = pathTo.relative(pathTo.join(entryPath, '../'), vueFilePath);
 let contents = '';
 
 if (hasPluginInstalled) {
  const plugindir = pathTo.resolve('./web/plugin.js');
  contents = 'require(\'' + plugindir + '\') \n';
 }
 if (isWin) {
  relativePath = relativePath.replace(/\\/g, '\\\\');
 }
 contents += 'var App = require(\'' + relativePath + '\')\n';
 contents += 'App.el = \'#root\'\n';
 contents += 'new Vue(App)\n';
 return contents;
 }

第二个 walk

const walk = (dir) => {
 dir = dir || '.';
 const directory = pathTo.join(__dirname, 'src', dir);
 fs.readdirSync(directory).forEach((file) => {
  const fullpath = pathTo.join(directory, file);
  const stat = fs.statSync(fullpath);
  const extname = pathTo.extname(fullpath);
  if (stat.isFile() && extname === '.vue' || extname === '.we') {
  if (!fileType) {
   fileType = extname;
  }
  if (fileType && extname !== fileType) {
   console.log('Error: This is not a Good practice when you use ".we" and ".vue" togither!');
  }
  const name = pathTo.join(dir, pathTo.basename(file, extname));
  if (extname === '.vue') {
   const entryFile = pathTo.join(vueWebTemp, dir, pathTo.basename(file, extname) + '.js');
   fs.outputFileSync(pathTo.join(entryFile), getEntryFileContent(entryFile, fullpath));
   entry[name] = pathTo.join(__dirname, entryFile) + '?entry=true';
  }
  weexEntry[name] = fullpath + '?entry=true';
  } else if (stat.isDirectory() && file !== 'build' && file !== 'include') {
  const subdir = pathTo.join(dir, file);
  walk(subdir);
  }
 });
 }

这两个方法,是遍历src中的.vue文件,然后在temp文件夹中生成一个相对应的JS文件

如果我们采用传统的vue开发,需要一个入口.js文件,我们需要对这个配置进行改造

添加入口文件配置

const entry = {index: pathTo.resolve('src', 'entry.js')};
const weexEntry = {index: pathTo.resolve('src', 'entry.js')};

删除或者更改配置(当然,第三种方法还可以把.vue组件不写在src内)

删除

  1. 删除getEntryFileContent函数

  2. 删除walk函数

  3. 删除walk() walk函数的调用

修改(代码来自GitHub上高仿网易严选项目)

注意看最外层的if判断,添加了额外条件 如果是文件且后缀是.vue且不是App.vue的,则进入判断。否则,判断是不是page文件夹,如果不是,则结束。

function walk(dir) {
 dir = dir || '.';
 const directory = pathTo.join(__dirname, 'src', dir);
 fs.readdirSync(directory)
 .forEach((file) => {
  const fullpath = pathTo.join(directory, file);
  const stat = fs.statSync(fullpath);
  const extname = pathTo.extname(fullpath);
  const basename = pathTo.basename(fullpath);
  console.log("配置",file,fullpath,stat,extname,basename,)
  if (stat.isFile() && extname === '.vue' && basename != 'App.vue' ) {
  if (!fileType) {
   fileType = extname;
  }
  if (fileType && extname !== fileType) {
   console.log('Error: This is not a good practice when you use ".we" and ".vue" togither!');
  }
  const name = pathTo.join(dir, pathTo.basename(file, extname));
  if (extname === '.vue') {
   const entryFile = pathTo.join(vueWebTemp, dir, pathTo.basename(file, extname) + '.js');
   fs.outputFileSync(pathTo.join(entryFile), getEntryFileContent(entryFile, fullpath));
   entry[name] = pathTo.join(__dirname, entryFile) + '?entry=true';
  }
   weexEntry[name] = fullpath + '?entry=true';
  } else if (stat.isDirectory() && ['build','include','assets','filters','mixins'].indexOf(file) == -1 ) {
  const subdir = pathTo.join(dir, file);
  walk(subdir);
  }
 });
}

感谢各位的阅读!关于“weex默认webpack.config.js改造的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: weex默认webpack.config.js改造的示例分析

本文链接: https://www.lsjlt.com/news/76986.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • weex默认webpack.config.js改造的示例分析
    这篇文章给大家分享的是有关weex默认webpack.config.js改造的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:解决的问题:由于weex默认的web...
    99+
    2022-10-19
  • Weex中WEEX-EROS开发的示例分析
    小编给大家分享一下Weex中WEEX-EROS开发的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解...
    99+
    2022-10-19
  • Python默认值的示例分析
    这篇文章给大家分享的是有关Python默认值的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、使用注意使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的实参。这让Python依然能够...
    99+
    2023-06-15
  • webpack之webpack.config.js配置文件的示例分析
    这篇文章主要为大家展示了“webpack之webpack.config.js配置文件的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“webpack之we...
    99+
    2022-10-19
  • PHP中默认参数值的示例分析
    这篇文章将为大家详细讲解有关PHP中默认参数值的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP 默认参数值下面的例子展示了如何使用默认参数。如果我们调用没有...
    99+
    2022-10-19
  • Linux中RedHat7默认yum源的示例分析
    这篇文章将为大家详细讲解有关Linux中RedHat7默认yum源的示例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。目前,我们常见的系统大概就是Windows、Linux和Mac OS...
    99+
    2023-06-05
  • centos 6.6默认iptable规则的示例分析
    这篇文章将为大家详细讲解有关centos 6.6默认iptable规则的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在自己电脑上新装了centos6.6虚拟机,然后装了nginx,没有进行任何其...
    99+
    2023-06-10
  • Android开发中Launcher3常见默认配置修改的示例分析
    这篇文章将为大家详细讲解有关Android开发中Launcher3常见默认配置修改的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:Launcher概述Launcher是开机完成后第一个启...
    99+
    2023-05-30
    android launcher3
  • python函数指定默认值的示例分析
    小编给大家分享一下python函数指定默认值的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、说明(1)写函数时,可以为每个参数指定默认值。当调用函数为...
    99+
    2023-06-14
  • bootstrap中datepicker插件默认英文修改为中文的示例分析
    这篇文章主要介绍了bootstrap中datepicker插件默认英文修改为中文的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。da...
    99+
    2022-10-19
  • html5中p标签默认和div标签默认属性的示例分析
    这篇文章主要为大家展示了“html5中p标签默认和div标签默认属性的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“html5中p标签默认和div标签默...
    99+
    2022-10-19
  • java接口使用默认方法的示例分析
    这篇文章给大家分享的是有关java接口使用默认方法的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、接口中默认方法的格式:public default返回值类型方法名(参数列表) {...
    99+
    2023-06-14
  • vue-cli3多页应用改造的示例分析
    这篇文章主要介绍了vue-cli3多页应用改造的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。需求一个平台P,包含产品a、b、c、d...
    99+
    2022-10-19
  • 浏览器默认样式User Agent Stylesheet的示例分析
    这篇文章将为大家详细讲解有关浏览器默认样式User Agent Stylesheet的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。发现最近在调整网页的格式发现网...
    99+
    2022-10-19
  • 常用元素默认margin和padding值的示例分析
    这篇文章主要为大家展示了“常用元素默认margin和padding值的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“常用元素默认margin和padding值的示例分析”这篇文章吧。代码...
    99+
    2023-06-08
  • CSS中width和height的默认值auto与%示例分析
    这篇文章主要介绍CSS中width和height的默认值auto与%示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!结论width的%:定义基于包含块(父元素)宽度的百分比宽度,会突破父级的限制width的au...
    99+
    2023-06-08
  • js中空值检查和分配默认值的示例分析
    小编给大家分享一下js中空值检查和分配默认值的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!空值检查和分配默认值当我们赋...
    99+
    2022-10-19
  • Springboot 2.x RabbitTemplate默认消息持久化的示例分析
    这篇文章主要为大家展示了“Springboot 2.x RabbitTemplate默认消息持久化的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Springboot...
    99+
    2023-06-29
  • C++中占位参数和默认参数的示例分析
    这篇文章将为大家详细讲解有关C++中占位参数和默认参数的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1,默认参数在c++中,函数的形参列表中的形参是可以有默认值的。语法: 返回值类型 函数名 (...
    99+
    2023-06-29
  • React中Props类型校验和默认值的示例分析
    这篇文章主要为大家展示了“React中Props类型校验和默认值的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“React中Props类型校验和默认值的示例分析”这篇文章吧。一、prop...
    99+
    2023-06-29
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作