我正在尝试将资产加载到我的 css 中,在某些情况下(更大的文件),复制到特定目录。使用 url 加载器并为名称模板定义查询参数时,出现错误:
错误:路径变量 [name] 未在此上下文中实现:[path][name].[ext]?7770f0c15c5bc5d8291a
我正在使用具有定义输出的多个入口点,我不确定这是否是问题所在。有没有办法强制上下文?Webpack 配置如下。
module.exports = [{
debug: !isProduction,
devtool: isProduction ? false : 'source-map',
entry: {
// Globals:
'./public/dist/css/base' : './src/scss/base',
'./public/dist/css/module' : './src/scss/module',
},
output: {
path: __dirname,
filename: '[name].css',
},
module: {
loaders: [
{
test: /\.css$/,
loader: 'style-loader!css-loader'
}, {
test: /\.scss$/,
loader: ExtractTextPlugin.extract('style', ['css?sourceMap', 'postcss', 'sass?sourceMap'])
}, {
test: /.*\.(gif|png|jpe?g|svg)$/i,
loaders: [
'url?{limit: 2048, name: "[path][name].[ext]?[hash]"}'
],
include: path.join(__dirname, 'src/images')
}
]
},
resolve: {
extensions: ['', '.css', '.scss'],
root: [path.join(__dirname, './src')]
},
plugins: plugins,
resolveUrlLoader: {
root: './public/dist/images'
},
postcss: [
autoprefixer({
browsers: ['last 2 versions']
})
],
sassLoader: {
includePaths: [path.resolve(__dirname, './src/scss')],
outputStyle: isProduction ? 'compressed' : 'expanded'
},
}]
这是我的文件结构:
- src
|- sass
|- js
|- images
- public
|- css
|- js
|- images