首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基本Webpack ExtractTextWebpackPlugin配置

基本Webpack ExtractTextWebpackPlugin配置
EN

Stack Overflow用户
提问于 2017-04-21 16:38:59
回答 1查看 35关注 0票数 0

在我的head标记(使用链接标签)中包含单独的ExtractTextWebpackPlugin文件时,我在为simpy配置CSS时遇到了问题,我相信这是它的主要目的。

我在webpack.config.js中的当前配置

代码语言:javascript
复制
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>

据我所知,这应该在运行时将general.css包含在我的head标记中,但它并不存在。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-21 17:48:40

ExtractTextPlugin只从包中移除CSS以将其与JavaScript分离,您需要将它包括在您的JavaScript中以及包中。

您可以让webpack为您生成一个HTML文件,从而实现自动化。当您在文件名中使用散列时,这一点尤其有用。您将需要使用html-webpack-plugin,它将自动包含捆绑的JavaScript以及由ExtractTextPlugin提取的CSS。

此外,您应该理解,在运行时包含CSS的想法会对页面的加载时间产生负面影响,因为您首先需要下载JavaScript包(第一个网络请求),然后需要执行JS,这需要一些时间进行分析,然后您必须下载您的CSS文件(第二个网络请求)。由于您首先依赖于要执行的包,所以您将在短时间内不使用CSS显示页面,或者在网络连接不良的低端移动设备上显示大量时间。

如果您不使用ExtractTextPlugin,而是使用style-loader,则基本上会发生这种情况。style-loader只是将您的CSS注入到<style>标记中,这是从JavaScript包中完成的,因此它仍然取决于正在执行的绑定包,但至少它不需要对JavaScript进行额外的网络请求。这甚至比您预期的ExtractTextPlugin做的更好,这将有效地使插件毫无用处。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43547913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档