[英]Basic Webpack ExtractTextWebpackPlugin configuration
我在为simpy配置ExtractTextWebpackPlugin时遇到问题,在我的HTML头标签(使用链接标签)中包含了单独的CSS文件,我认为这是其主要目的。
我在webpack.config.js中的当前配置:
var path = require('path');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
module.exports = {
entry: './app/index.js',
output: {
filename: "app.js",
path: path.resolve(__dirname, 'dist')
},
module: {
rules: [
{
test: /\.css$/,
use: ExtractTextPlugin.extract({
fallback: "style-loader",
use: "css-loader"
})
}
]
},
plugins: [
new ExtractTextPlugin('general.css')
]
};
在我的主要index.js文件中,我有require("../style.css");
style.css放置在项目根文件夹中。
在我的index.html中,我有<script src="dist/app.js"></script>
据我了解,这应该在运行时在我的head标签中包含general.css ,但它不存在。
任何帮助表示赞赏。
ExtractTextPlugin
仅从捆绑软件中删除CSS,以使其与JavaScript脱钩,您需要将其包括在HTML和捆绑软件中。
您可以通过让webpack为您生成HTML文件来自动执行此操作。 当您在文件名中使用哈希时,这特别有用。 您将需要使用html-webpack-plugin
,它将自动包括捆绑的JavaScript以及ExtractTextPlugin
提取的CSS。
此外,您应该理解,在运行时添加CSS的想法会对页面的加载时间产生负面影响,因为您首先需要下载JavaScript捆绑包(第一个网络请求),然后需要执行JS,这需要需要一些时间来解析,然后您必须下载CSS文件(第二个网络请求)。 由于您首先依赖于要执行的捆绑软件,因此您将短暂地显示没有CSS的页面,或者在网络连接不良的低端移动设备上显示大量时间。
如果您不使用ExtractTextPlugin
而是使用style-loader
那么基本上就是这种情况。 style-loader
只是将CSS注入到<style>
标记中,这是通过JavaScript捆绑包完成的,因此它仍然取决于正在执行的捆绑包,但至少不需要CSS的额外网络请求。 这甚至比您期望的ExtractTextPlugin
更好,因为这将使插件毫无用处。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.