vue项目本地打包

** vue-cli版本是 2.9.6 查看命令:vue --version
记录第一次vue项目打包遇到的问题以及解决方法**

1. 第一步配置打包路径 给下面几个文件 添加./ 如果不配置 npm run build 后打开Index.html是空白
/build/webpack.prod.conf.js

 output: {
    path: config.build.assetsRoot,
    filename: utils.assetsPath('js/[name].[chunkhash].js'),
    chunkFilename: utils.assetsPath('js/[id].[chunkhash].js'),
    //新增
    publicPath:'./'
  },

/buildwebpack.base.conf.js

output: {
    path: config.build.assetsRoot,
    filename: '[name].js',
    publicPath: process.env.NODE_ENV === 'production'
      ? "./"+config.build.assetsPublicPath   //新增"./"
      : "./"+config.dev.assetsPublicPath  //新增"./"
  },

/src/router/index.js

 mode: "hash"   //模式设置hash

2. 打包期间遇到图片显示失败的问题:解决方法如下

在这里插入图片描述

/build/unitl.js

    if (options.extract) {
      return ExtractTextPlugin.extract({
        use: loaders,
        fallback: 'vue-style-loader',
        // 添加publicPath 可以解决图片显示失败的问题
        publicPath:'../../'
      })
    }

/config/index.js

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

    // Paths
    assetsRoot: path.resolve(__dirname, '../dist'),
    assetsSubDirectory: 'static',
    assetsPublicPath: './',    //assetsPublicPath值修改为./

3.最后遇到了打包后代理失效的问题 看下面解决方法:

config/dev.env.js

'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')

module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',
  API_HOST:'"/api"' //配置运行环境 代理路径的符号
 })

config/prod.env.js

'use strict'
module.exports = {
  NODE_ENV: '"production"',
  API_HOST:'"http://*********:8080"' //生产环境的地址
 }

config/index.js

dev: {
    // Paths
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    // 后端请求地址代理,配置后target再之后的页面调用时就直接指代 
     proxyTable: {
      '/api': {
        target: 'http://192.168.0.109:8080',  
        changeOrigin: true,
        pathRewrite: { 
          '^/api': 'http://192.168.0.109:8080'
        },
        
      },
    },
    host: 'localhost', 
    port: 8080, 

最后在main.js把baseURL 修改成 process.env.API_HOST

axios.defaults.baseURL = process.env.API_HOST;
### Vue 项目 UMD 打包配置与实现 为了在 Vue 项目中创建 UMD (Universal Module Definition) 构建版本,可以利用 Webpack 进行自定义配置。这使得构建后的文件可以在多种环境中使用,无论是通过 `<script>` 标签引入还是作为模块加载。 #### 创建 Webpack 配置文件 在项目的根目录下创建 `webpack.config.js` 文件[^1]: ```javascript const path = require('path'); const { VueLoaderPlugin } = require('vue-loader'); module.exports = { entry: './src/index.js', // 主入口文件路径 output: { path: path.resolve(__dirname, 'dist'), filename: 'bundle.umd.js', libraryTarget: 'umd', globalObject: 'this' }, module: { rules: [ { test: /\.vue$/, loader: 'vue-loader' } ] }, plugins: [ new VueLoaderPlugin() ], resolve: { alias: { vue$: 'vue/dist/vue.esm-bundler.js' // 使用完整版 Vue } } }; ``` 此配置指定了输出库的目标环境为 UMD,并设置了全局对象为 `'this'` 来兼容不同类型的上下文。同时,针对 `.vue` 单文件组件应用了相应的加载器处理逻辑。 #### 修改 package.json 脚本命令 为了让打包过程更加便捷,在 `package.json` 中添加或修改脚本来触发 Webpack 编译流程: ```json { "scripts": { "build-umd": "webpack --config webpack.config.js" } } ``` 执行上述命令将会依据指定的 Webpack 设置来编译源码并生成适用于 UMD 的 JavaScript 文件。 #### 启动开发服务器(可选) 如果希望测试打包效果而不必每次都正式发布,则可在特定目录如 `single-spa-demo-root-config` 下启动本地服务来进行预览[^2]: ```bash yarn start ``` 该操作通常会在端口 9000 上提供一个简单的 HTTP 服务器用于展示成果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值