css文件无法应用,使用webpack4打包提取不出css文件

本文介绍如何使用 mini-css-extract-plugin 插件分离 CSS 文件,包括配置 Webpack 来实现 CSS 的有效打包与分离,以及如何针对不同页面进行 CSS 文件的独立提取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用的是

mini-css-extract-plugin  这个插件,来提取的,下面是我的配置

const path = require('path');

const CleanWebpackPlugin = require('clean-webpack-plugin');

const HTMLWebpackPlugin = require('html-webpack-plugin');

const MiniCssExtractPlugin = require("mini-css-extract-plugin")

function resolve(dir) {return path.join(__dirname, '..', dir)}

module.exports = {

entry: {

index: './src/pages/index/js/index.js',fang: './src/pages/fang_list/js/fang_list.js'},

output: {filename: 'js/[name].[chunkhash:8].js',path: resolve('dist')},

plugins: [

new CleanWebpackPlugin(['dist'],{

root: resolve('./'),

verbose:true,

dry:false}),

new HTMLWebpackPlugin({

template:'src/pages/index/index.html',

filename: 'index.html',chunks: ['index']}),

new HTMLWebpackPlugin({

template:'src/pages/fang_list/fang_list.html',filename: 'fang_list.html',chunks: ['fang']}),

new MiniCssExtractPlugin({filename: "[name].css",chunkFilename: "[id].css"})],

module: {

rules: [

{test: /\.js$/,loader: 'babel-loader'},

{test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,loader: 'url-loader',options: {limit: 10000}},

{test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,loader: 'url-loader',options: {limit: 10000,}},

test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,loader: 'url-loader',options: {limit: 10000,}},

{test: /\.css$/,use: [MiniCssExtractPlugin.loader,"css-loader"]},

{test:/\.less$/,use: [MiniCssExtractPlugin.loader,'css-loader','less-loader']}]}}

### HTML 代码部分功能未生效的原因分析 #### Meta 标签无效问题 如果在HTML页面中遇到Meta标签未能按预期工作的情况,可能由多种因素引起。例如,在JSP页面环境中,若当前页面通过包含其他子页面的方式来构建整体布局,则需注意被包含的子页面是否存在JavaScript代码块或外链JS文件加载操作。一旦这些脚本位于Meta标签之前被执行,就可能导致后者失去作用[^1]。这是因为浏览器按照自上而下的顺序解析文档流,当先执行了某些阻塞型资源(如复杂脚本),后续的关键渲染树建立指令可能会被打断甚至忽略。 为了修复这一类问题,建议调整HTML结构,确保所有的Meta声明都放置于任何可执行脚本之上。此外还可以考虑延迟非必要脚本的加载时间,采用异步(asynchronous)或者延后(deferred)的方式引入它们,从而让核心元信息得以优先处理。 #### 样式表无效问题 对于CSS样式不生效的现象,首先要排查的是是否正确地指定了目标元素的选择器以及对应的属性值书写无误。其次要确认是否有多个相互冲突的规则同时应用于同一个DOM节点上,并依据层叠次序(Cascade Order),只有权重最高的那个才会最终起效。再者就是检查网络请求环节,有时候即使本地路径写得没错但由于服务器端配置不当也可能造成静态资源获取失败。 另一种常见情形涉及到现代前端工程化流程里打包工具的应用场景。假如项目采用了Webpack之类的模块管理方案,默认情况下它会自动帮我们把提取出来的全局级联样式注入到生成产物当中去。然而这种自动化机制有时并不完全符合我们的需求——比如希望手动控制何时何处应用某套外观逻辑的时候就需要额外干预这个过程。此时可以通过定制专用插件像OmmitCSSPlugin那样监听相关钩子事件进而阻止不必要的<link>引用插入动作发生[^2]。 最后值得注意的一点有关跨平台开发领域内的特殊情况讨论。拿Android为例来说吧,考虑到其多样化的硬件规格特别是屏幕像素密度差异性较大这一点,单纯依靠单一版本的设计稿往往难以兼顾所有机型的实际展示效果。因此有必要提前规划好适应策略,包括但不限于运用媒体查询(Media Queries)技术动态切换不同分辨率条件下的图片素材等等措施来弥补因物理特性带来的视觉偏差现象[^4]。 ```html <!-- 正确示例 --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <!-- 应放在最前面 --> <title>Document</title> <!-- 确保此行之后才加载外部脚本 --> <script src="example.js" defer></script> <!-- 如果需要指定字符集兼容旧版浏览器 --> <!--<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">--> </head> <body> ... </body> </html> ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值