webpack怎么把各个模块的css打包成一个

html-css013

webpack怎么把各个模块的css打包成一个,第1张

webpack把各个模块的css打包成一个方法:

webpack.config.js配置如下

var ExtractTextPlugin = require("extract-text-webpack-plugin")//extract-text-webpack-plugin安装此插件

module:{

loaders:[

{test: /\.css$/, loader: ExtractTextPlugin.extract("style-loader", "css-loader")}

]

},

plugins:[

new ExtractTextPlugin("css/[name].css")//则会生成一个css文件

]

比如你的js文件中这样引入即可:

import './css/lib/bootstrap.min.css'

import './css/test.css'

其实有两种方案:第一种是将 css 文件在 js entry 中添加依赖;第二种直接设置 css entry。

第一种方案

// index.jsimport 'normalize.css'

...

// webpack config{ entry: {index: './index.js'

},

...

}

// outputindex.jsindex.css

这种是 Webpack 官方推荐的方案,但是每次都要把 css 放到 js entry 中才可以 extract 出来。

第二种方案(直接设置 css entry)

默认 Webpack 设置 css entry 除了 extract 出 css 文件还会多产生一个 js 文件,其实可以写个 Webpack 插件将其删除就可以了。

这个是将你的class名变成hash值,这样可以防止你的样式名重名了。获取当然是获取不到的,因为webpack是将你的源码打包了,然后你设置了之后,他就变成hash值,你通过获取原先class名想找到dom是不可能的。两种方式,一种是不变成hash值,另外一种是使用变成hash值后再去找dom。如变成hash值后是w5ds6d3213_245ad,那么你就通过document.getElementByClassName("w5ds6d3213_245ad").这样就能获得