2017-02-21 16 views
5

Я использую экстракт текста WebPack-плагин 2.0.0-rc.3 с Webpack 2.2.1 и я получаю эту ошибку при запуске сборки:Использование Webpack 2 и приточно-текст-WebPack-плагин

/node_modules/extract-text-webpack-plugin/index.js:259 
var shouldExtract = !!(options.allChunks || chunk.isInitial()); 
               ^
TypeError: chunk.isInitial is not a function 

Вот мой webpack.config.js:

'use strict'; 
const argv = require('yargs').argv; 
const ExtractTextPlugin = require("extract-text-webpack-plugin"); 
const webpack = require('webpack'); 

module.exports = (function() { 
    let config = { 
    entry : './' + process.env.npm_package_config_paths_source + '/main.js', 
    output : { 
     filename : 'main.js' 
    }, 
    watch : !!argv.watch, 
    vue  : { 
     loaders : { 
     js : 'babel-loader', 
     // Create separate CSS file to prevent unstyled content 
     sass : ExtractTextPlugin.extract("css!sass?sourceMap") // requires `devtool: "#source-map"` 
     } 
    }, 
    module : { 
     rules : [ 
     { 
      test : /\.js$/, 
      use  : 'babel-loader', 
      exclude : '/node_modules/' 
     }, 
     { 
      test : /\.vue$/, 
      use  : 'vue-loader', 
      options : { 
      loaders : { 
       'scss' : 'vue-style-loader!css-loader!sass-loader', 
       'sass' : 'vue-style-loader!css-loader!sass-loader?indentedSyntax' 
      }, 
      } 
     } 
     ] 
    }, 
    plugins : [ 
     new webpack.DefinePlugin({ 
     'process.env' : { 
      npm_package_config_paths_source : '"' + process.env.npm_package_config_paths_source + '"' 
     } 
     }), 
     new ExtractTextPlugin("style.css") 
    ], 
    resolve : { 
     alias : { 
     'vue$' : 'vue/dist/vue.common.js' 
     } 
    }, 
    babel : { 
     "presets" : ["es2015", "stage-2"], 
     "comments" : false, 
     "env"  : { 
     "test" : { 
      "plugins" : ["istanbul"] 
     } 
     } 
    }, 
    devtool : "#source-map" // #eval-source-map is faster but not compatible with ExtractTextPlugin 
    }; 

    if (process.env.NODE_ENV === 'production') { 
    config.plugins = [ 
     // short-circuits all Vue.js warning code 
     new webpack.DefinePlugin({ 
     'process.env' : { 
      NODE_ENV      : '"production"', 
      npm_package_config_paths_source : '"' + process.env.npm_package_config_paths_source + '"' 
     } 
     }), 
     // minify with dead-code elimination 
     new webpack.optimize.UglifyJsPlugin(), 
     new ExtractTextPlugin("style.css") 
    ]; 
    config.devtool = "#source-map"; 
    } 

    return config; 
})(); 

Когда я удалить new ExtractTextPlugin("style.css") из массива plugins сборка прекрасно работает, но не создает style.css.

Если добавить опцию allChunks: true ошибка становится этим:

/node_modules/webpack/lib/Chunk.js:80 
return this.entrypoints.length > 0; 
        ^
TypeError: Cannot read property 'length' of undefined 
+0

Я столкнулся с тем же вопросом – EnugulaS

+0

Ниже опубликовано ответ может помочь вам также @EnugulaS – ironcladgeek

ответ

0

В случае, если вы пишете правила стиля в .vue файле или seprate .scss файл с ниже конфигураций WebPack вы можете добиться того, что вы ищете :

webpack.confi.js:

var webpack = require('webpack'); 
 
var ExtractTextPlugin = require('extract-text-webpack-plugin'); 
 
     .... 
 
     .... 
 
module.exports = { 
 
     .... 
 
     .... 
 
     module: { 
 
      rules: [ 
 
      { 
 
       test: /\.vue$/, 
 
       loader: 'vue-loader', 
 
       options: { 
 
        loaders: { 
 
        'scss': ExtractTextPlugin.extract('css-loader!sass-loader'), 
 
        'sass': ExtractTextPlugin.extract('css-loader!sass-loader?indentedSyntax') 
 
        } 
 
       } 
 
      }, 
 
       .... 
 
       .... 
 
       { 
 
       test: /\.scss$/, 
 
       loader: ExtractTextPlugin.extract('css-loader!sass-loader') 
 
       } 
 
       .... 
 
       .... 
 
      ] // rules end 
 
     }, // module end 
 
     plugins: [ 
 
      new ExtractTextPlugin('style.css') 
 
     ], 
 
     .... 
 
    }

Просто убедитесь, что вы установили эти модули/погрузчик с помощью НОГО:

  • CSS-погрузчик
  • дерзости-погрузчик
  • узла дерзость
  • экстракта текст WebPack -plugin
Смежные вопросы