Vue+webpack项目实践踩坑之路 | 持续更新

1、git clone 与vue init 相爱相杀

首先,我在git上新建了一个项目 leke-operation。

然后,我在本地clone了这个项目 leke-operation。

接着,我在本地的这个项目(目前是一个空文件夹 leke-operation)执行命令 vue init webpack leke-operation

这会儿你会很fu*k的遇到vue初始化命名必须输入项目名,

于是你的目录成立 leke-operation 文件夹里面又一个 leke-operation 文件夹。

 

尝试换个思路,我先init好我的项目,生成了一个 leke-operation 文件夹。

然后,我去clone项目,结果又是clone了一个新的leke-operation文件夹出来,又是包了一层目录。

接着去尝试checkout commit push 等等,各种Bug...

不说这些失败的尝试了,最后的解决方案很简单,简单到觉得自己是个zz

 

方案如下:

首先,我在git上新建了一个项目 leke-operation。

然后,我在本地clone了这个项目 leke-operation。

接着,我在本地的这个项目(目前是一个空文件夹 leke-operation)的父级目录中执行命令 vue init webpack leke-operation

这会儿你会很fu*k的遇到vue初始化命名必须输入项目名,

于是你的目录成立 leke-operation 文件夹里面又一个 leke-operation 文件夹。

它会提示你当前项目名已存在同名文件夹是否覆盖它,直接执行Yes!

最终如我所愿。

 

2、别忘安装less-loader

vue-cli 构建的项目默认是不支持 less 的,需要自己添加。

官网推荐的方法 npm install less 是不够的

正确的操作如下:

npm install less less-loader --save-dev

 

3、VeeValidate配置中文的两种不同做法

旧版: "vee-validate": "^2.0.0-rc.13"

新版:"vee-validate": "^2.1.0-beta.7"

安装最新版的VeeValidate之后对其进行中文化操作时,

之前老一套(2.0版)中文化的做法如下图:

系统报错提示 addLocale 是不存在的,所以这个时候,要么将版本降低至2.0版,要么就再安装一个玩意儿:vue-i18n

执行命令 yarn add vue-i18n

此时,新一套(2.1版)中文化的做法如下图:

 

4、axios修改请求数据格式

默认请求数据的格式是这样的:

修改请求头信息

headers: {  'Content-Type': 'application/x-www-form-urlencoded'  }

修改请求数据

transformRequest: [function (data, headers) {
    let ret = ''
    for (let it in data) {
        if (data[it] === 0 || (data[it] || data[it] === '') || data[it] === false) {
            if (ret !== '') ret += '&'
            ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it])
        }
    }
    return ret
}]

关于axios的具体代码配置如下:

const instance = axios.create({
    // 设置超时时间
    timeout: 30000,
    // 请求的baseUrl
    baseURL: baseUrl,
    // 请求头部信息
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
    },
    // 修改请求数据
    transformRequest: [function (data, headers) {
        let ret = ''
        for (let it in data) {
            if (data[it] === 0 || (data[it] || data[it] === '') || data[it] === false) {
                if (ret !== '') ret += '&'
                ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it])
            }
        }
        return ret
    }],
    // 跨域请求时允许携带凭证(cookie)
    withCredentials: true
})

 

5、没了dev-server.js文件如何模拟后台数据

之前的package.json中默认配置如下:

而最新脚手架搭建的项目配置如下:

由此可见,项目的开发环境启动已经不再依赖dev-server.js这个多余的一步,而是直接在webpack.dev.conf.js运行,

此时如果我们需要配置express来模拟请求返回数据的话,做法如下:

(1)安装express:

npm install express --save

(2)在webpack.dev.conf.js文件中,头部引入:

(3)找到devServer,添加模拟数据:

 

6、vue-cli webpack打包后加载资源的路径问题

打包后的index.html加载资源失败 > 提示报路径错误 > 需要我们对build操作进行一些path上的调整!

具体如下:

1、静态资源的绝对路径改为相对路径

2、添加图片资源的访问路径

OK,就这两步差不多了。

posted @ 2018-08-14 14:08  Mr.Kay  阅读(431)  评论(0编辑  收藏  举报