van*_*ert 7 css webpack webpack-style-loader postcss css-loader
我已从过去的方式切换为不再包含样式表:
<link rel="stylesheet" href="./../css/main.css">
Run Code Online (Sandbox Code Playgroud)
Webpack方法:
var css = require('./../css/main.css');
Run Code Online (Sandbox Code Playgroud)
它可以工作,但是我不喜欢它从该文件中将css提取到内联标签中,因为那样很难在Dev Tools中对其进行调试。例如,我不知道这些属性来自哪个文件和行:

如何将其移动到单独的文件或生成将我指向源文件的源映射?因此,当我检查开发工具时,它将看起来像这样:
我的webpack.config.js:
var autoprefixer = require('autoprefixer');
module.exports = {
devtool: "css-loader?sourceMap",
module: {
loaders: [
{test: /\.(png|woff|woff2|eot|ttf|svg)$/, loader: 'url-loader?limit=100000'},
{
test: /\.css$/,
loader: "style-loader!css-loader!postcss-loader"
}
]
},
entry: [
'./static/js/app.js'
],
output: {
filename: './static/js/bundle.js'
},
watch: false,
postcss: function () {
return [autoprefixer];
}
};
Run Code Online (Sandbox Code Playgroud)
我的app.js:
var $ = require('jquery');
window.jQuery = $;
window.$ = $;
require('bootstrap-loader');
module.exports = (function () {
alert('IT WORKS!');
});
window.app = module.exports;
var css = require('./../css/main.css');
Run Code Online (Sandbox Code Playgroud)
要将样式从包中提取到外部样式表,您需要使用提取文本插件。
一般的 webpack 配置如下所示:
var ExtractTextPlugin = require('extract-text-webpack-plugin');
module.exports = {
devtool: "source-map",
entry: 'path/to/entry.js',
output: {
path: 'path/to/bundle'
filename: 'bundle.js'
},
module: {
loaders: [
{
test: /\.css$/,
loader: ExtracTextPlugin.extract('css-loader?sourceMap')
}
]
},
plugins: [
new ExtractTextPlugin('styles.css')
]
};
Run Code Online (Sandbox Code Playgroud)
您应该注意的部分用于devtool: "source-map"调试部分,并且通过插件您提供加载器作为参数来提取插件的方法:
loaders: [
{
test: /\.css$/,
loader: ExtracTextPlugin.extract('css-loader?sourceMap')
}
]
Run Code Online (Sandbox Code Playgroud)
如果您也需要,您还可以在这里链接装载机sass-loader:
loaders: [
{
test: /\.scss$/,
loader: ExtracTextPlugin.extract('css-loader?sourceMap!sass-loader?sourceMap')
}
]
Run Code Online (Sandbox Code Playgroud)
您不再需要样式加载器,但您也可以将其作为后备加载器提供给插件:
loaders: [
{
test: /\.css$/,
loader: ExtractTextPlugin.extract({
fallbackLoader: "style-loader",
loader: "css-loader?sourceMap"
})
}
]
Run Code Online (Sandbox Code Playgroud)
在你的插件数组中,你实例化插件并提供你想要的外部样式表的名称:
plugins: [
new ExtractTextPlugin('styles.css')
]
Run Code Online (Sandbox Code Playgroud)
[name]如果您有多个入口点并且每个条目都有一个样式表,您也可以使用占位符。
| 归档时间: |
|
| 查看次数: |
2397 次 |
| 最近记录: |