vue-cli4 正式环境无法引入css

最近项目升级到vue-cli4,在测试环境测试通过了,上正式环境样式引不进去


const webpack = require("webpack");  
const path = require("path");  
const resolve \= dir => path.join(\_\_dirname, dir);  
// 打包体积优化  
const BundleAnalyzerPlugin = require("webpack-bundle-analyzer").BundleAnalyzerPlugin;  
  
// 开启gzip压缩  
const CompressionWebpackPlugin \= require('compression-webpack-plugin');  
  
const IS\_PROD = \["production", "prod"\].includes(process.env.NODE\_ENV);  
  
module.exports \= {  
  // publicPath: IS\_PROD ? process.env.PUBLIC\_PATH : "/onlineweb/", // 默认'/',部署应用包时的基本 URL  
 // 默认'/',部署应用包时的基本 URL  publicPath: "/onlineweb/",  
  // 'dist', 生产环境构建文件的目录  
  outputDir: 'dist',  
  // 相对于outputDir的静态资源(js、css、img、fonts)目录  
  assetsDir: "static",  
  // 简单/基础配置,比如引入一个新插件  
  configureWebpack: config => {  
    const plugins = \[\];  
  
 if (IS\_PROD) {  
      plugins.push(  
        new CompressionWebpackPlugin({  
          filename: '\[path\].gz\[query\]',  
  algorithm: 'gzip',  
  test: /\\.js$|\\.html$|\\.css/,  
  // 对于超过10K的文件进行压缩  
  threshold: 10240,  
  // 只有压缩率小于这个值的资源才会被处理  
  minRatio: 0.8,  
  // 删除原文件  
  deleteOriginalAssets: false  
  })  
      )  
    }  
  
    config.plugins \= \[...config.plugins, ...plugins\];  
  },  
  chainWebpack: config => {  
    // 修复HMR  
  config.resolve.symlinks(true); 
  // 如果使用多页面打包,使用vue inspect --plugins查看html是否在结果数组中  
  config.plugin("html").tap(args => {  
      // html中添加cdn  
  args\[0\].cdn \= cdn;  
 return args;  
  });  
  
  config  
      .plugin("ignore")  
      .use(  
        new webpack.ContextReplacementPlugin(/moment\[/\\\\\]locale$/, /zh-cn$/)  
      );  
  // 添加别名  
  config.resolve.alias  
  .set("vue$", "vue/dist/vue.esm.js")  
      .set("@", resolve("src"));  
  
 if (IS\_PROD) {  
      // 压缩图片  
  config.module  
  .rule("images")  
        .test(/\\.(png|jpe?g|gif|svg)(\\?.\*)?$/)  
        .use("image-webpack-loader")  
        .loader("image-webpack-loader")  
        .options({  
          bypassOnDebug: true  
  })  
        .end();  
  
  // 打包分析  
  config.plugin("webpack-report").use(BundleAnalyzerPlugin, \[  
        {  
          analyzerMode: "static"  
  }  
      \]);  
  }  
    return config;  
  },  
  // pages,  
  css: {  
    // 设为true将不会热更新css  
  extract: false,  
  sourceMap: false,  
  loaderOptions: {  
      scss: {  prependData: \`  
 @import "~@/styles/variables.scss"; \`  }  
    }  
  },  
  lintOnSave: false,  
  // 是否使用包含运行时编译器的 Vue 构建版本  
  runtimeCompiler: true,  
  // 生产环境的 source map  
  productionSourceMap: !IS\_PROD,  
  parallel: require("os").cpus().length \> 1,  
  pwa: {},  
  devServer: {  
    host: '127.0.0.1',  
  port: 8864,  
  // 自动拉起浏览器  
  open: true,  
  // 热加载  
  hot: true,  
  // 配置多个代理  
  proxy: {  
      '/api': {   
  target: '/', 
  changeOrigin: true,  
  // 是否启用websockets  
  ws: true,  
  pathRewrite: { 
  '^/api': 'http://127.0.0.1:8864/'  
  }  
      }  
    }  
  }  
};

我在loaderOptions里引入了全局变量,全局样式在main.js里引入

import "@/styles/reset.scss"; 

vue文件里还是跟往常一样引入

<style lang\="scss" scoped\>  
 @import '~@/styles/staff/layout.scss';  
</style>

上到正式环境发现引入不到呢 是什么情况呢 请求大神 感谢~

阅读 2.9k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题