Webpack import bootstrap.js и .css
Я создаю приложение, используя реакцию, загрузку и webpack, используя es6 с babel.
Но я не могу импортировать boostrap.js и bootstrap.css в свое приложение.
Мой webpack.config.js
var webpack = require('webpack'),
HtmlWebpackPlugin = require('html-webpack-plugin'),
path = require('path'),
srcPath = path.join(__dirname, 'src');
module.exports = {
target: 'web',
cache: true,
entry: {
module: path.join(srcPath, 'module.js'),
common: ['react', 'react-router', 'alt']
},
resolve: {
root: srcPath,
extensions: ['', '.js'],
modulesDirectories: ['node_modules', 'src']
},
output: {
path: path.join(__dirname, 'tmp'),
publicPath: '',
filename: '[name].js',
library: ['Example', '[name]'],
pathInfo: true
},
module: {
loaders: [
{test: /\.js?$/, exclude: /node_modules/, loader: 'babel?cacheDirectory'}
]
},
plugins: [
new webpack.optimize.CommonsChunkPlugin('common', 'common.js'),
new HtmlWebpackPlugin({
inject: true,
template: 'src/index.html'
}),
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery"
}),
new webpack.ProvidePlugin({
bootstrap: "bootstrap.css",
}),
new webpack.NoErrorsPlugin()
],
debug: true,
devtool: 'eval-cheap-module-source-map',
devServer: {
contentBase: './tmp',
historyApiFallback: true
}
};
Так что в моих .js файлах (реагировать на компоненты) я пытаюсь сделать: import 'bootstrap'. Но css не выполняется. Импорт .js хорошо работает.
Итак, как мне импортировать boostrap или настроить webpack?
Ответы
Ответ 1
Вам нужно сделать следующее:
- В вашем конфигурационном файле webpack,
resolve
, убедитесь, что включен путь к файлу загрузочного css файла.
В качестве примера:
var bootstrapPath = path.join(
__dirname,
'development/bower_components/bootstrap/dist/css'
);
Затем в вашем файле конфигурации webpack:
resolve: {
alias: {
jquery: path.join(__dirname, 'development/bower_components/jquery/jquery')
},
root: srcPath,
extensions: ['', '.js', '.css'],
modulesDirectories: ['node_modules', srcPath, commonStylePath, bootstrapPath]
}
- Убедитесь, что у вас есть загрузчик стиля и загрузчик css. Например.
loaders:[{ test: /\.css$/, loader: "style-loader!css-loader" }]
- Используйте его в файле js
require('bootstrap.min.css');
Ответ 2
Просто используйте меньший плагин и правильно объявляйте их...
// Webpack file
{
test: /\.less$/,
loader: "style-loader!css-loader!less-loader"
},
// I have to add the regex .*? because some of the files are named like... fontello.woff2?952370
{
test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)(\?.*)?$/,
loader: 'url?limit=50000'
}
// Less file
@import '~bootstrap/less/bootstrap';
Я все еще работаю над JS, но скоро сообщу вам: -)