說,你已經得到了你想要CSS和JS代碼之間共享一些變量:如何告訴webpack有關額外的依賴關係?
vars.js
:
module.exports = {
'body-margin': '100px',
};
style.css
:
body {
margin: var(--body-margin);
}
entry.js
:
var vars = require('./vars.js');
require('./style.css');
document.body.appendChild(
document.createTextNode(vars['body-margin']));
我這樣做使用postcss-cssnext
/postcss-custom-properties
插件:
webpack.config.js
:
var HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: './entry.js',
output: {
filename: 'bundle.js',
},
module: {
rules: [{
test: /\.css$/,
use: [
'style-loader',
'css-loader',
{loader: 'postcss-loader',
options: {
plugins: [
require('postcss-cssnext')({
features: {
customProperties: {
variables: require('./vars.js'),
},
},
}),
],
}},
],
}],
},
plugins: [new HtmlWebpackPlugin()],
};
但是當我運行webpack-dev-server
和vars.js
改變變量,javascript代碼注意到了變化,但CSS代碼沒有。有沒有辦法來解決這個問題?使css反映更改而不重新啓動webpack-dev-server
。附:如果有的話,我還沒有設置使用postcss
/cssnext
/postcss-custom-properties
來共享變量。
package.json
:
{
"dependencies": {
"css-loader": "^0.28.7",
"html-webpack-plugin": "^2.30.1",
"postcss-cssnext": "^3.0.2",
"postcss-loader": "^2.0.6",
"style-loader": "^0.18.2",
"webpack": "^3.6.0",
"webpack-dev-server": "^2.8.2"
}
}