返回

Vue-cli脚手架下的项目搭建与本地测试的灵魂拷问

前端

俗话说,实践出真知。目前在练习Vue,利用vue-cli脚手架开发了个vue2.0仿唯妮海购项目,在生产环境中一切良好,项目暂时告一段落,根据官方的npm run build打包后发现,在自己没有线上服务器的情况下,测试成为一大难题。

因此,急需对Vue项目进行本地测试。

本地测试的灵魂拷问:如何优雅高效的解决项目测试?

本人推荐并详细演示http-server方式。

1.安装http-server

可通过npm全局方式安装http-server:

npm i http-server -g 

2.项目打包

npm run build

3.启动项目

http-server dist

启动后,浏览器会自动跳转到打包的index.html文件。

若想让项目每次修改都可以热更新,可采取以下步骤:

  1. 在package.json下加入命令:
"serve": "http-server dist"
  1. 执行:
npm run serve

由于热更新需要webpack-dev-middleware和webpack-hot-middleware,同时在vue-cli3中并未默认引入webpack-dev-middleware和webpack-hot-middleware,因此我们需要手动安装。

npm install --save-dev webpack-dev-middleware webpack-hot-middleware

然后在build/webpack.base.conf.js文件中加入如下代码:

const webpack = require('webpack');
module.exports = {
  plugins: [
    new webpack.HotModuleReplacementPlugin(),
  ],
  devServer: {
    clientLogLevel: 'warning',
    historyApiFallback: true,
    hot: true,
    compress: true
  }
};

然后执行命令:

npm run serve

即可。

4.常见问题排查

问题一:浏览器访问空白

解决方法:关闭防火墙,或者将node.js加入到防火墙的白名单。

问题二:浏览器报错

这是因为浏览器默认禁止了dist文件夹下的静态资源跨域访问,解决方法有:

  • 通过代理的方式

在vue.config.js中进行如下配置:

devServer: {
  //设置代理
  proxy: {
    '/api': {
      target: 'http://xxx.com/api',//目标代理接口地址
      ws: true,//websocket支持
      changeOrigin: true //允许跨域
    }
  }
}
  • 在package.json中加入命令
"start": "http-server -c-1 dist"

也可通过设置代理的方式解决。

关于Vue-cli脚手架项目的搭建及测试的问题,目前已讲解完毕,若有疑问,欢迎评论探讨。