2015-10-16 8 views
3

TL; DR: при генерации двух .js и одного .css-фрагментов плагин удаляет весь .js-код из одного из блоков .js.extract-text-webpack-plugin удаляет все .js код

Это повторяющееся поведение, даже если я использую только примеры из документов webpack.

Я может быть что-то не хватает, но я не могу найти то, что это :)

Конфигурационный выглядит следующим образом:

var path = require('path'); 
var webpack = require('webpack'); 
var ExtractTextPlugin = require("extract-text-webpack-plugin"); 
var glob = require("glob"); 

module.exports = { 
    entry: { 
     app: [ 
      './.build/app/app_dependencys.js', 
      './.build/app/_helpers/api_helpers.js', 
      './.build/app/event-manager.js', 
      './.build/app/route_handlers/Router.js' 
     ], 
     lib: [ 
      'c3', 
      'lodash', 
      'moment', 
      'moment-timezone', 
      'pleasejs', 
      'react-bootstrap-datetimepicker', 
      'react', 
      'react-bootstrap', 
      'react-d3-components', 
      'react-datepicker-component', 
      'react-googlemaps', 
      'react-router', 
      'react-slider', 
      'reactable', 
      'select2' 
     ], 
     css: glob.sync('./css/css/*.styl') 
    }, 
    output: { 
     path: path.join(__dirname, 'js/dist'), 
     filename: "app.js", 
     chunkFilename: "[name].js" 
    }, 
    module: { 
     loaders: [ 
      {test: /\.jsx?$/, loader: 'babel?compact=false', ignore: /node_modules/}, 
      {test: /\.json$/, loader: "json"}, 
      { 
       test: /\.styl$/, 
       loader: ExtractTextPlugin.extract('raw', 'raw!stylus') 
      } 
     ] 
    }, 
    plugins: [ 
     new ExtractTextPlugin('id', "./../../css/compiled/css.css", {allChunks: false}), 
     new webpack.optimize.CommonsChunkPlugin(/* chunkName= */"lib", /* filename= */"lib.js", Infinity) 
    ], 
    externals: ['jquery'], 
    bail: true 
}; 

При запуске webpack, это выход:

Time: 51884ms 
         Asset  Size Chunks    Chunk Names 
         app.js 3.8 kB 0, 1 [emitted] app, css 
         lib.js 3.47 MB  2 [emitted] lib 
./../../css/compiled/css.css 131 kB  1 [emitted] css 
    [0] multi app 64 bytes {0} [built] 
    [0] multi css 364 bytes {1} [built] 
    [0] multi lib 196 bytes {2} [built] 
    + 634 hidden modules 
Child extract-text-webpack-plugin: 
     + 1 hidden modules 
Child extract-text-webpack-plugin: 
     + 1 hidden modules 
Child extract-text-webpack-plugin: 
     + 1 hidden modules 

.... it goes on for a while ... 

в результате:

  • css.css содержит все CSS, как это требуется
  • lib.js содержит все L код, как это требуется
  • app.js: каждый элемент в app.js заменяется

    /***/ 581: 
    /***/ function(module, exports) { 
    
        // removed by extract-text-webpack-plugin 
    
    /***/ }, 
    
    /***/ 582: 
    /***/ function(module, exports) { 
    
         // removed by extract-text-webpack-plugin 
    
    /***/ }, 
    ... 
    

Сообщил плагину авторы также: https://github.com/webpack/extract-text-webpack-plugin/issues/118

+0

Я только начал сталкиваться с этим, когда я перемещал свои файлы webpack на более низкий уровень в своей иерархии приложений. Вы когда-нибудь делали это? –

+0

Nope :(В этом вопросе почти нет прогресса. – Mamut

+0

Вы можете попробовать некоторые из размещенных там предложений: https://github.com/webpack/extract-text-webpack-plugin/issues/118#issuecomment-213582249, https://github.com/webpack/extract-text-webpack-plugin/issues/118#issuecomment-223678580, https://github.com/webpack/extract-text-webpack-plugin/issues/118#issuecomment- 223689905 – Mamut

ответ

1

ответ здесь: https://github.com/webpack-contrib/extract-text-webpack-plugin/issues/118

Хорошо, что работает для меня: хорошо: запись: {ЯШ: './js/app.js', CSS: ' ./scss/main.scss'}, плохо: запись: { js: './js/app.js', scss: './scss/main.scss'} единственное различие - css-ключ вместо scss. А также запись: ['./js/main.js', './scss/main.scss'] тоже работает.

+0

Вам следует предоставить дополнительную информацию, ссылка хорошая, поскольку комментарий не как ответ. – Mitro