dd

129 阅读1分钟
const path = require('path');
const resolve = (dir) => {
  return path.join(__dirname, dir);
};

let pubPath = './';
switch (process.env.NODE_ENV_ONE) {
  case 'location':
    pubPath = './';
    break;
  case 'production':
    pubPath = 'https://cdn.yizhiniao.com/companyWebsiteMobile/';
    break;
  case 'development':
    pubPath = 'https://cdntest.yizhiniao.com/companyWebsiteMobile/';
    break;
}
const version = 'v-001';
const proxy = process.env.NODE_ENV !== 'production' ? 'https://test.yizhiniao.com/api' : 'https://www.yizhiniao.com/api';
module.exports = {
  publicPath: pubPath,
  outputDir: 'dist',
  assetsDir: 'static',
  lintOnSave: process.env.NODE_ENV !== 'production',
  runtimeCompiler: false,
  productionSourceMap: false,
  filenameHashing: false,
  integrity: false,
  devServer: {
    port: '8082',
    hot: true,
    proxy: {
      '/api': {
        target: proxy,
        changeOrigin: true,
        secure: false,
        pathRewrite: {
          '^/api': ''
        }
      }
    }
  },
  // chainWebpack是直接修改内置的webpack配置项 configureWebpack是合并webpack默认的配置项
  chainWebpack: (config) => {
    config.plugins.delete('prefetch');
    config
      .module
      .rule('images')
      .test(/\.(jpg|png|gif)$/)
      .use('url-loader')
      .loader('url-loader')
      .options({
        limit: 10,
        esModule: false,
        // publicPath: pubPath,
        outputPath: 'static/img',
        name: `[name].${version}.[ext]`
      })
      .end();
  },
  css: {
    extract: {
      filename: `static/css/[name].${version}.css`,
      chunkFilename: `static/css/[name].${version}.css`
    },
    sourceMap: false
  },
  configureWebpack: (config) => {
    Object.assign(config, {
      output: {
        ...config.output,
        filename: `static/js/[name].${version}.js`,
        chunkFilename: `static/js/[name].${version}.js`
      }});
    config.resolve = {
      extensions: ['.js', '.vue', '.json', '.css'], // 引用文件时不需要加后缀
      alias: {
        '@': resolve('src')
      }
    };
  }
};