2017-01-20 10 views
0

Я взял Webpack учебник от Angular.io и начал обновляться до Webpack 2 после официального руководства и руководства not official.Почему css-loader/style-loader вызывает неожиданный символ # ошибка?

я встретил ошибку ниже:

ERROR в ./public/css/styles.css модуль синтаксического анализа не удалось: DashboardDelivery.Host.Ui.Spa \ Public \ CSS \ styles.css Неожиданное символов '#' (3:16) Для обработки этого типа файла может потребоваться соответствующий загрузчик. | Корпус | { | фон: # 0147A7; | цвет: #fff; | }

  • Я не понимаю, в чем проблема
  • если файл пустой, то он выдает ошибку, когда text.Foreach неизвестна функция
  • если только пустое тело {} в CSS файл, то webpack жалуется на тело не определено

В принципе, не имеет значения, что я делаю, всегда есть проблема, и характер, связанный, является самым странным. Что мне здесь не хватает?

webpack.common.js

var webpack = require('webpack'); 
var HtmlWebpackPlugin = require('html-webpack-plugin'); 
var ExtractTextPlugin = require('extract-text-webpack-plugin'); 
var helpers = require('./helpers'); 

module.exports = { 
    entry: { 
     'polyfills': './src/app/polyfills.ts', 
     'vendor': './src/app/vendor.ts', 
     'app': './src/app/main.ts' 
    }, 

    resolve: { 
     extensions: ['.ts', '.js'] 
    }, 

    module: { 
     rules: [ 
      { 
       test: /\.ts$/, 
       use: ['awesome-typescript-loader', 'angular2-template-loader'] 
      }, 
      { 
       test: /\.html$/, 
       use: 'html-loader' 
      }, 
      { 
       test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)$/, 
       use: 'file-loader?name=assets/[name].[hash].[ext]' 
      }, 
      { 
       test: /\.css$/, 
       exclude: helpers.root('src', 'app'), 
       use: ExtractTextPlugin.extract(
        { 
         fallbackLoader: 'style-loader', 
         loader: 'css-loader?sourceMap', 
         publicPath: "/dist" 
        }) 
      }, 
      { 
       test: /\.css$/, 
       include: helpers.root('src', 'app'), 
       use: 'raw-loader' 
      } 
     ] 
    }, 

    plugins: [ 
     new webpack.optimize.CommonsChunkPlugin({ 
      name: ['app', 'vendor', 'polyfills'] 
     }), 

     new HtmlWebpackPlugin({ 
      template: 'src/index.html' 
     }), 

    ] 
}; 

webpack.dev.js

var webpackMerge = require('webpack-merge'); 
var ExtractTextPlugin = require('extract-text-webpack-plugin'); 
var commonConfig = require('./webpack.common.js'); 
var helpers = require('./helpers'); 

module.exports = webpackMerge(commonConfig, { 
    devtool: 'cheap-module-eval-source-map', 

    output: { 
     path: helpers.root('dist'), 
     publicPath: 'http://localhost:8080/', 
     filename: '[name].js', 
     chunkFilename: '[id].chunk.js' 
    }, 

    plugins: [ 
     new ExtractTextPlugin('[name].css') 
    ], 

    devServer: { 
     historyApiFallback: true, 
     stats: 'minimal' 
    } 
}); 

style.css

body 
{ 
    background: #0147A7; 
    color: #fff; 
} 

ответ

1

После нескольких мелющих часов, чтобы найти ответ есть ответ ... ExtractTextPlugin не работает с новым синтаксисом использования. Вот blog Я нашел предложение, и вот ошибка ticket.