博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vuecli3.0和ts踩坑
阅读量:5884 次
发布时间:2019-06-19

本文共 1719 字,大约阅读时间需要 5 分钟。

vuecli3.0

3.0以后,大多数配置,都通过函数封装了,增加的规范性,刚开始,从2.*转过来的,表示很难受

1. 如何查看webpack配置

vue inspect > output.js复制代码

2. 如何修改webpack配置

  1. 创建vue.config.js
    module.exports = {}复制代码
  2. 配置代理
devServer: {  open: process.platform === 'darwin',  host: '0.0.0.0',  port: 8080,  https: false,  hotOnly: false,  proxy: {    '/activity': {      target: 'https://example.ipay.so/marketing',      ws: true,      changeOrigin: true    },  }, // string | Object  before: app => {    // `app` 是一个 express 实例  }},复制代码
  1. 修改基础配置(静态资源公共路径)
    configureWebpack:(config)=>{ config.output.publicPath=env.publicPath[process.env.VUE_APP_build] , config.entry.app='./src/main.ts' }复制代码
  2. 全局变量声明

在根目录下新建.env文件(有三种模式,.env会在所有模式中使用),在文件中以键值对的形式声明变量,例如VUE_APP_build=test。以VUE_APP_开头的变量,不仅可以在webpack配置中使用,还会通过DefinePlugin在项目中使用

  1. 代码压缩去sourceMap

找到 node_modules@vue\cli-service\lib\options.js中的productionSourceMap改为false

  1. uglifyOptions配置

这个插件的配置没有暴露出来,因此需要自己找到这个文件node_modules@vue\cli-service\lib\config\uglifyOptions.js 一般会在compress下添加一个字段drop_console: true,用来关闭console

configureWebpack (config) {    // 生产环境去掉console, 注意console里面不要放函数调用, 也会被删掉    if (process.env.NODE_ENV === 'production') {      const terserWebpackPlugin = config.optimization.minimizer[0]      const terserOptions = terserWebpackPlugin.options.terserOptions      terserOptions.compress["drop_console"] = true    }  }复制代码

typescript踩的坑

主要是模块和变量都要在根路径下面用一个.d.ts文件声明,要不然ts检查会报错 如果不方便,也可以用断言(< any >window)这种形式。 接口文件最好独立出来,然后在tsconfig.json的typeRoots下添加接口文件地址。 只要接口写得好,TS的代码提示用起来很爽。 例如你需要在main.ts中引process.env的环境变量,如果不做任何处理,编译后的js可以正常执行,但是ts会报错process未定义。

这个时候,可以在根路径下面定义一个命名空间,并写入合适变量类型(这只是完善提示,并不代表全局存在这个变量)

declare namespace process {  var env:{a:string,b:number,c:object}}复制代码

定义好了,ajax的后端接口结构,然后在.vue里面赋值,推断全被冲掉了。

转载地址:http://nqlix.baihongyu.com/

你可能感兴趣的文章
linux中防CC攻击两种实现方法(转)
查看>>
《Programming WPF》翻译 第9章 4.模板
查看>>
hdu2159
查看>>
Windows7+VS2012下OpenGL 4的环境配置
查看>>
Maven for Eclipse 第一章 ——Maven的介绍
查看>>
Linux Kernel中断子系统来龙去脉浅析【转】
查看>>
Linux NFS服务器的安装与配置
查看>>
Ada boost学习
查看>>
Unity中SendMessage和Delegate效率比较
查看>>
Linux下EPoll通信模型简析
查看>>
react-native 制作购物车ShopCart
查看>>
Linux服务器 java生成的图片验证码乱码问题
查看>>
【转】QT中QDataStream中浮点数输出问题
查看>>
AD RMS之Windows 内部数据库迁移到 SQL 服务器
查看>>
记录我第一次在Android开发图像处理算法的经历
查看>>
mongodb3.2配置文件yaml格式 详解
查看>>
git设置默认编辑为vim
查看>>
android api (82) —— InputConnection [输入法]
查看>>
数据库事务的四大特性
查看>>
webshell 提升 for linux
查看>>