vue-cli-service在打包webpack项目时,由于vue router导入视图文件的写法不同,打包的参数npm run build:dev | npm run build:prod引起的页面展示差异,例如静态导入,异步导入等,下面来介绍一下这几种差异。

  1. 路由文件在文件内容中静态import ,打包参数使用build --mode development
    此方式的编译包可以在浏览器正常展示
  2. 路由文件在文件内容中静态import,打包参数使用 build --mode production
    此种方式的编译包时无法在浏览器正常加载视图,通常控制台会报如下错误

    [Vue Router warn]: Component "default" in record with path "/router" is a Promise instead of a function that returns a Promise. Did you write "import('./**.vue')" instead of "() => import('./**.vue')" ? This will break in production if not fixed.
  3. 路由文件在文件内容中通过异步函数 import,打包参数使用 build --mode production/development
    两种方式均可以正常显示页面
  4. 路由文件在文件头静态import,在内容中直接赋值 打包参数使用 build --mode development
    该方式可以正常访问并加载,
  5. 路由文件在文件头静态import,在内容中直接赋值 打包参数使用 build --mode production
    该方式可以正常访问并加载

所以得出一个结论:路由视图文件的导入必须采用异步函数或者在文件头处导入

在各种查询中叶没有得到具体的原因,但是翻开vue-cli的文档时,有惊喜的发现,其实这样是由原因的:模式和环境变量 | Vue CLI,以下是引用原文:

模式是 Vue CLI 项目中一个重要的概念。默认情况下,一个 Vue CLI 项目有三个模式:

  • development 模式用于 vue-cli-service serve
  • test 模式用于 vue-cli-service test:unit
  • production 模式用于 vue-cli-service build 和 vue-cli-service test:e2e

你可以通过传递 --mode 选项参数为命令行覆写默认的模式。例如,如果你想要在构建命令中使用开发环境变量:

vue-cli-service build --mode development

当运行 vue-cli-service 命令时,所有的环境变量都从对应的环境文件中载入。如果文件内部不包含 NODE_ENV 变量,它的值将取决于模式,例如,在 production 模式下被设置为 "production",在 test 模式下被设置为 "test",默认则是 "development"

NODE_ENV 将决定您的应用运行的模式,是开发,生产还是测试,因此也决定了创建哪种 webpack 配置。

例如通过将 NODE_ENV 设置为 "test",Vue CLI 会创建一个优化过后的,并且旨在用于单元测试的 webpack 配置,它并不会处理图片以及一些对单元测试非必需的其他资源。

同理,NODE_ENV=development 创建一个 webpack 配置,该配置启用热更新,不会对资源进行 hash 也不会打出 vendor bundles,目的是为了在开发的时候能够快速重新构建。

当你运行 vue-cli-service build 命令时,无论你要部署到哪个环境,应该始终把 NODE_ENV 设置为 "production" 来获取可用于部署的应用程序。

所以原因就很清楚了。

vue-router导入视图文件方式与打包参数的差异相关推荐

  1. python导入csv文件-jupyter 导入csv文件方式

    先将准备的文件上传到自己的jupyter工作空间 import numpy as np import pandas as pd housing = pd.read_csv('housing.csv') ...

  2. vue中导入excel文件

    vue中导入excel文件 1.安装插件 npm install -S file-saver xlsxnpm install -D script-loader 2.在utils中创建excel文件夹放 ...

  3. Vue 项目导入字体文件

    要想实现UI设计师设计的原型效果,有时候需要用到一些特殊的字体,在项目中就需要导入相关的字体文件.本文章以平方字体为例. 1.导入字体文件 1.下载相应的字体文件,或者找UI设计师要一份(如果UI设计 ...

  4. electron打包现成的vue项目成.exe文件,build打包vue项目(quasar 框架)

    前言: 公司已有web端vue项目,现在有需求,需要把web端的该项目用electron打包成 .exe 可执行文件. 思考:打包成 .exe 文件,首先需要将vue项目在本地打包成静态可运行文件,其 ...

  5. vue导出导入csv文件(无需插件)

    vue导出csv的时候有一个问题,就是如果数据是UTF-8格式的,需要在文件内容前面加BOM头,这样Excel程序可以识别这个BOM头,不会乱码. csv文件无非就是文本行加上BOM头,字符串解析就可 ...

  6. vue 前端导入excel文件,并展示出

    在详细介绍前,先展示下效果 技术介绍 element UI 组件的el-upload和el-table xlsx插件0.16.0版本 第一步,下载xlsx插件 npm install xlsx@0.1 ...

  7. vue 前端导入excel文件,并在页面表格展示

    在详细介绍前,先展示下效果 第一步,下载xlsx插件 npm install xlsx@0.16.0 在需要的文件中import导入"import xlsx form 'xlsx'" ...

  8. asp.net core2.0中网站发布的时候,怎么样才配置才可以使视图文件不被打包进去?...

    默认设置可真是坑~~ https://q.cnblogs.com/q/99680/ 转载于:https://www.cnblogs.com/xinzhyu/p/9004302.html

  9. Vue 自定义指令的注册方式和选项参数

    目录 1. 注册方法 1.1 全局注册的写法 1.2 局部注册的写法 2. 自定义指令的选项 2.1 选项 2.2 钩子函数的参数 1. 注册方法 ​ 自定义指令 的注册方法,分为 全局注册 和 局部 ...

最新文章

  1. python代码怎么写出色_如何写出更具有Python风格的代码,五分钟教会你!
  2. 如何组建开发团队-建立畅通的沟通渠道
  3. c语言数组算n阶乘,c语言中如何计算n的阶乘
  4. Python很简单,你一定能学会【加油!】
  5. 在Windows XP3下搭建cocos2d-x-android开发环境
  6. 9.23 最后45天
  7. TensorFlow中数据读取—如何载入样本
  8. Linux signal 编程(转载)
  9. 怎么查询房贷批下来没?
  10. 回文数问题,两数互换位置问题(不用第三个变量)
  11. leetcode:String to Integer (atoi)
  12. 阿里巴巴高级技术专家章剑锋:大数据发展的 8 个要点
  13. 让人死去活来的cocos2d-x安卓开发环境搭建(windows+eclipse+ndk 不用cygwin)【上图】
  14. muddleftpd配置和用法
  15. 使用python玩转dicom文件——医学图像处理工具pydicom入门教程
  16. android实现半透明,Android应用开发中半透明效果实现方案总结
  17. Python图像增强之直方图均衡化(全局直方图均衡、局部直方图均衡)
  18. JAVA 对 海康SDK二次开发
  19. Deep Voice 论文
  20. 【天嵌分享活动】E9卡片电脑设置显示屏分辨率

热门文章

  1. 弱电控制强电:继电器的使用方法-道合顺大数据infinigo
  2. html中初始化css样式,css样式初始化 normalize
  3. 简单的一键分享(1)
  4. ENVI【非监督分类】
  5. 无盘服务器启动不了,无盘工作站不能启动的解决方案
  6. Femto基站的由来与介绍
  7. 友善之臂-4418环境搭建
  8. 转载别人下载资源神器
  9. SPI协议的4种模式(转至广漠飘羽)
  10. 算法新解 (刘新宇 著)