我正在使用CSS模块,并且有一个JS文件,可以保存我的页面颜色,如下所示:
module.exports = {
colors: {
black: '#000000',
white: '#ffffff',
mint: '#b3e4e9',
red: '#ed2e56'
},
};
我能够提取CSS并将其构建到自己的.css文件中并对捆绑我的.js文件执行相同的操作。但是,颜色值不会被编译成十六进制值,而是保留它们在导出的JS对象中使用的名称(例如,我得到'background-color:~colors.white',而不是'background- color:#ffffff;'在我构建的.css文件中)。因此,风格没有贯彻。
我的webpack.prodution.config.js设置如下:
const path = require('path');
const webpack = require('webpack');
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const postCSS = require('./build/postcss');
module.exports = {
entry: './src/index.js',
output: {
path: path.join(__dirname, './public/build'),
publicPath: '/build/',
filename: 'bundle.js',
},
module: {
loaders: [{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel',
}, {
test: /\.css$/,
loader: ExtractTextPlugin.extract('style', 'css', 'postcss'),
}, {
test: /\.jpeg|jpg|gif|svg|png$/,
loader: 'file?name=assets/images/[name].[ext]',
}, {
test: /\.ttf|woff|woff2|eot$/,
loader: 'file?name=assets/fonts/[name].[ext]',
}],
},
plugins: [
new ExtractTextPlugin('styles.css'),
new webpack.optimize.UglifyJsPlugin({
compressor: { warnings: false },
}),
new webpack.optimize.OccurrenceOrderPlugin(),
new webpack.optimize.DedupePlugin(),
new webpack.DefinePlugin({
'process.env': JSON.stringify({
NODE_ENV: 'development',
}),
__DEV__: true,
__PROD__: false,
}),
],
postcss: function processPostCSS(bundler) {
return postCSS(bundler);
},
};
如何将js和css分成不同的页面,同时仍然将JS颜色编译为css中的十六进制值?谢谢。