2017-02-20 33 views
4

Я решил попробовать его в Webpack 2. Я пытаюсь связать js и css.Webpack - CSS не применяется

Проблема в том, что CSS не применяется к элементам на странице (присутствует в встроенном файле).

Это структура приложения:

app 
    |-styles.css 
    |-app.js 
build 
    |-bundle.js 
index.html 

WebPack конфигурационный файл:

var path = require('path'); 

module.exports = { 
    entry: './app/app.js', 
    output: { 
     filename: 'bundle.js', 
     path: path.resolve(__dirname, 'build') 
    }, 
    module: { 
     rules: [ 
      { 
      test: /\.css$/, 
      use: 'css-loader' 
      } 
     ] 
    } 
} 

index.html:

<html> 
<head> 
    <script src="./build/bundle.js"></script> 
</head> 
<body> 
    <div class="abc"> hello </div> 
</body> 

app.js:

require('./styles.css'); 
console.log('js loaded!'); 

Когда я запускаю команду построить получать этот вывод:

[0] ./app/styles.css 240 bytes {0} [built] [1] ./~/css-loader/lib/css-base.js 1.51 kB {0} [built] [2] ./app/app.js 148 bytes {0} [built]

Также я могу видеть CSS включен в bundle.js файл

exports.push([module.i, ".abc {\r\n width: 300px;\r\n height: 100px;\r\n background-color: red;\r\n}", ""]); 

Если я включаю файл CSS в html он отлично работает, поэтому я думаю, что в CSS не существует орфографической ошибки. Я потратил немало времени, пытаясь понять это. Есть что-то, чего я не хватает?

ответ

6

Вы загружаете CSS как строку только с css-loader. Вам понадобится style-loader, а также для загрузки CSS в DOM при его импорте.

use: [ 'style-loader', 'css-loader' ] 
+0

Спасибо, что сэкономили часы на поиск меня! – arsinawaz