vue cli 打包上线

常见的跨域配置(/config/index.js):

proxyTable: {
      '/api': {
        target: 'http://192.168.2.139:8080/Mobile/Max', // 接口的域名
        // secure: false,  // 如果是https接口,需要配置这个参数
        changeOrigin: true, // 如果接口跨域,需要进行这个参数配置,为true的话,请求的header将会设置为匹配目标服务器的规则(Access-Control-Allow-Origin)
        pathRewrite: {
          '^/api': '' //本身的接口地址没有 '/api' 这种通用前缀,所以要rewrite,如果本身有则去掉
          }
        }
    },

在开发调试时,使用axios进行数据交互时没问题。但打包部署到服务器上发现404,跨域报错了。研究发现还需要进行配置一下。

config文件夹还有2个文件dev.env.js和prod.env.js 分别是开发环境和生产环境配置文件,我们需要分别进行修改。

dev.env.js(开发环境)

const merge = require('webpack-merge')
const prodEnv = require('./prod.env')
 
module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',
  VUE_APP_BASE_API:'"/api"'

})

prod.env.js(生产环境)

module.exports = {

  NODE_ENV: '"production"',

  VUE_APP_BASE_API:'"http://192.168.xx:xxx"' //项目api地址

}

axios中调用baseRoot

var root = process.env.VUE_APP_BASE_API;
axios({
    method: 'post',
    url: `${root}${url}`,
    data: params
})

Failed to load resource: net::ERR_FILE_NOT_FOUND

在webpack.base.conf.js里

publicPath: process.env.NODE_ENV === 'production'
      ? './' +config.build.assetsPublicPath
      : './' + config.dev.assetsPublicPath
找到 config->index.js里面,如下修改

build: {
  // Template for index.html
  index: path.resolve(__dirname, '../dist/index.html'),

  // Paths
  assetsRoot: path.resolve(__dirname, '../dist'),
  assetsSubDirectory: 'static',
  assetsPublicPath: './',  //修改成‘./'
})

build->utils.js,在里面加入一句publicPath:’../../

if (options.extract) {
  return ExtractTextPlugin.extract({
    use: loaders,
    publicPath:'../../',
    fallback: 'vue-style-loader'
  })
} else {
  return ['vue-style-loader'].concat(loaders)
}

 

 

 

 

### Vue 3 项目打包上线与部署指南 在前端开发中,Vue CLI 是一种高效的工具,用于构建和部署基于 Vue 的项目。尽管提供的引用内容主要针对 Vue 2,但 Vue 3 的打包和部署流程与其类似,仅需注意部分配置的差异。 #### 一、环境准备 确保本地开发环境已安装 Node.js 和 Vue CLI。如果尚未安装 Vue CLI,可以通过以下命令进行全局安装[^1]: ```bash npm install -g @vue/cli ``` #### 二、项目打包 使用 Vue CLI 创建的项目通常包含一个 `npm run build` 脚本,该脚本会将项目编译为生产环境可用的静态文件。执行以下命令进行打包[^2]: ```bash npm run build ``` 执行完成后,会在项目的根目录下生成一个名为 `dist` 的文件夹,其中包含所有经过优化的静态资源文件(HTML、CSS、JavaScript 等)。 #### 三、部署方式 Vue 3 项目打包后需要通过服务器进行部署,以下是常见的几种部署方式: ##### 1. **本地服务器部署** 可以使用简单的 HTTP 服务器工具来测试打包后的项目。例如,使用 `http-server` 模块启动本地服务器: ```bash npm install -g http-server http-server dist ``` 这将在本地启动一个 HTTP 服务器,访问地址通常是 `http://localhost:8080`。 ##### 2. **Nginx 部署** 将 `dist` 文件夹中的内容上传至 Nginx 的静态资源目录,并配置 Nginx 的 `location` 块以支持前端路由。示例配置如下: ```nginx server { listen 80; server_name your-domain.com; root /path/to/dist; index index.html; location / { try_files $uri /index.html; } } ``` 此配置确保了 Vue Router 的历史模式能够正常工作[^2]。 ##### 3. **云服务器部署** 购买云服务器后,将 `dist` 文件夹上传至服务器并配置 Web 服务(如 Nginx 或 Apache)。具体步骤包括: - 使用 FTP 或 SSH 将 `dist` 文件夹上传到服务器。 - 安装并配置 Nginx 或 Apache 以托管静态文件。 - 设置域名解析并将服务器 IP 地址绑定到域名[^3]。 #### 四、注意事项 在部署前,建议对项目进行以下检查和优化: - **环境变量配置**:确保 `.env.production` 文件中正确配置了生产环境所需的变量。 - **API 请求路径**:检查项目中的 API 请求路径是否适配生产环境,必要时调整 `baseURL` 或使用代理[^3]。 - **代码压缩与优化**:Vue CLI 默认会对代码进行压缩和优化,但可以进一步调整 `vue.config.js` 中的配置以提升性能。 ### 示例代码 以下是 `vue.config.js` 中的一个示例配置,用于优化生产环境下的打包: ```javascript module.exports = { publicPath: process.env.NODE_ENV === 'production' ? '/your-path/' : '/', lintOnSave: false, productionSourceMap: false, chainWebpack: config => { config.optimization.splitChunks({ chunks: 'all' }); } }; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值