webpack 打包html 怎么处理css,webpack单独分离打包css,css里引用的图片路径错误,怎么解决?...

现在我的这个项目是将css和js单独打包出来,打包后的目录结构和打包前一致。

打包前:

bV7faN?w=259&h=527

从这张图可以看到,如果是css文件夹根目录下的css文件引用images文件夹下的图片应该使用../就可以了,如果是css下某一个文件夹下面的css引用图片的话,就要往上层目录跳两层../../

打包后:

bV7fdx?w=291&h=681

webpack.config.js

var webpack = require('webpack');

var glob = require('globby')

var utils = require('utils');

var htmlWebpackPlugin = require('html-webpack-plugin');

var nodeExternals = require('webpack-node-externals');

var CompressionPlugin = require("compression-webpack-plugin");

var ExtractTextPlugin = require('extract-text-webpack-plugin');

var CSS_PATH = {

css: {

pattern: ['./public/css/**/*.css' ,'!./public/css/index.css'],

src: path.join(__dirname, './public/css/'),

dst: path.resolve(__dirname, 'build/public/css/'),

}

}

function getCSSEntries(config) {

var fileList = glob.sync(config.pattern)

console.log(fileList)

return fileList.reduce(function (previous, current) {

var filePath = path.parse(path.relative(config.src, current))

var withoutSuffix = path.join(filePath.dir, filePath.name)

previous[withoutSuffix] = path.resolve(__dirname, current)

return previous

}, {})

}

module.exports = [

{

target:'web',

externals: [nodeExternals()],

devtool: 'cheap-module-eval-source-map',

context: path.resolve(__dirname),

entry: getCSSEntries(CSS_PATH.css),

output: {

path: CSS_PATH.css.dst,

filename: '[name].css'

},

module: {

rules: [

{

test: /\.css$/,

use: ExtractTextPlugin.extract({

use: "css-loader",

publicPath:'../'

})

},

{

test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,

use: 'url-loader?limit=20000&name=[name].[ext]',

},

{

test: /\.scss$/,

loaders: ["style", "css", "sass"]

},

]

},

resolve: {

extensions: ['.css']

},

plugins: [

new ExtractTextPlugin('[name].css'),

]

},

]

结果

打包完成后启动项目,本来那些css根目录下的css引用的图片路径有一部分错误了。

css根目录下的css文件图片路径

bV7fc6?w=514&h=148

请问各位大神,这个问题用什么办法可以解决?可以把对应的图片打包到对应的文件夹下吗?我是一个webpack菜鸟,配置有点杂乱,望各位大神见谅!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值