react生產環境樣式丟失問題 在瀏覽器中看到標簽有類名,但沒有樣式


在開發環境下樣式沒有問題,打包到生產環境發現樣式不生效

可能的原因

1.dist文件夾下未生成css樣式文件。

webpack4中tree-shaking會默認移除 JavaScript 上下文中的未引用的代碼,用來達到減輕重量的思想,tree-shaking通過 package.json 的 "sideEffects" 屬性判定哪個文件具有副作用,當 "sideEffects" :false時,項目中未被引用到的文件會被移除判定均無副作用,就會把沒有被引用的代碼從環境中自動移除

解決

將css文件添加到“sideEffects”數組中

//package.json
 
    //改前
  "sideEffects": false,  
    //改后
  "sideEffects": [*.css"]

2.webpack打包時autoprefixer自動移除老式過時的代碼,

解決

將打包OptimizeCSSPlugin配置添加autoprefixer:{remove: false}

//文件: build/webpack.prod.conf.js或者build/webpack.build.conf.js
new OptimizeCSSPlugin({
    cssProcessorOptions: config.build.productionSourceMap ?
        { safe: true, map: { inline: false }, autoprefixer:{remove: false} } :
        { safe: true }
}),

但是上述方案都沒有解決我遇到的問題,

在瀏覽器中看到標簽有類名,但沒有樣式

 

 

在子元素中發現有樣式,其他都正常,只有這一個類名沒有樣式,

查看打包后的樣式文件,使用sublimetext,由於打包后的css都壓縮成一行,可安裝css format插件,展開顯示css方便查看,

打包后的css也是正常的,類名下是有樣式的,為什么沒有顯示呢?

我發現這個類名在第一行,是第一個選擇器,把這個選擇器復制了一份,放在后面,

直接放到生產環境下發現樣式正常顯示了。

 

回顧

雖然解決 了問題,但仍然不知道原因,可能我是用scss寫的樣式原因,

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM