【问题标题】:Webpack 2 extract text plugin entrypoints.length issuesWebpack 2 提取文本插件 entrypoints.length 问题
【发布时间】:2017-04-11 23:02:15
【问题描述】:

我在升级到 webpack 2 和提取文本插件时遇到问题。我有开发版本(没有这个插件)工作,我看不出有什么不同。我得到的错误是

node_modules\webpack\lib\Chunk.js:62
            return this.entrypoints.length > 0;

TypeError: Cannot read property 'length' of undefined

我有 gulp 运行 webpack 2 和这个插件用于单个 css 文件。这是我的 webpack 配置的主要部分(如果需要,很乐意提供所有内容):

     ...
     modules: { rules :[ ... {
         test: /\.scss/,
         exclude: /node_modules/,
         use: [
             "style-loader?sourceMap",
             {
                 loader: "css-loader",
                 options: {
                     minimize: true,
                     modules: true,
                     importLoaders: true,
                     localIdentName: "[path]___[name]__[local]___[hash:base64:5]",
                 },
             },
             {
                 loader: "postcss-loader",
                 options: { ...postCSSConfig },
             },
             {
                 loader: "sass-loader",
                 options: { includePaths: [path.join(process.cwd(), "src", "Styles", "Includes")] },
             },
         ],
     }, ]},
     plugins: [
         new ExtractTextPlugin({
             filename: "[contenthash].css",
             allChunks: true,
         }), ...

我正在使用以下版本:

Webpack:2.3.3

提取文本插件:2.0.1

编辑:这是我的切入点,

context: path.resolve(process.cwd(), "./src/"),
entry: [
    "babel-polyfill",
    "whatwg-fetch",
    "Boot",
],
devtool: "eval",
resolve: {
    modules: ["src", "node_modules"],
    extensions: [".js", ".jsx"],
},

任何想法都会很棒。 提前致谢。

【问题讨论】:

  • 您在哪里定义应用程序的入口点?
  • 我认为这个错误说明你没有任何 webpack 的入口脚本
  • 我已经编辑了我的问题。我正在使用 babel 将所有内容加载到模块中。
  • 现在似乎 HtmlWebpackPlugin 和/或 extractTextPlugin 不支持 webpack 2。有没有人有 webpack 2 插件的例子,它从模板、js 包和 css 包中提取 html ?

标签: reactjs gulp extract-text-plugin extracttextwebpackplugin


【解决方案1】:

根据docs,您还必须为加载样式创建适当的规则。

请看一下,这是我的规定。如果对您有帮助,请告诉我。

 {
      test: /\.(scss|css)$/,
      exclude: /node_modules/
      use: ExtractTextPlugin.extract({
          fallback: 'style-loader',
          use: ['css-loader', 'postcss-loader', 'sass-loader']
      })
 }

无论如何,我没有设法将ExtractTextPlugin 与 sourceMaps 一起使用,所以我无法为您提供将此插件与 source maps 一起使用的解决方案。

【讨论】:

  • 您是否设法添加了 ExtractTextPlugin?我想再试一次,现在已经几个月了。谢谢
  • 是的,我正在使用这个插件,但没有在开发中,因为 sourceMaps 的问题
  • 我最终像您在上面所做的那样在规则中使用 ExtractTextPlugin 完成了这项工作。然后我在插件集合中禁用了用于开发的插件。这适用于 HMR 和基于 CI 的构建。感谢您的帮助。
猜你喜欢
  • 2017-07-23
  • 2017-11-05
  • 1970-01-01
  • 1970-01-01
  • 2017-05-19
  • 2017-09-08
  • 2017-07-13
  • 2018-09-16
  • 1970-01-01
相关资源
最近更新 更多