使用 webpack 包含 bootstrap
Include bootstrap using webpack
我正在开发 chrome 扩展。我将 boostrap 3 用于 UI.
doctype html
html
head
meta(charset='UTF-8')
title (Boilerplate Popup)
link(rel="stylesheet", href="https://maxcdn.bootstrapcdn.com/bootstrap/latest/css/bootstrap.min.css")
style.
body { width: 500px; }
body
#root
script(src=env == 'prod' ? '/js/ext.bundle.js' : 'http://localhost:3000/js/ext.bundle.js')
这是我习惯于包含 boostrap 的方式。
localhost:3000 是用 webpack web server 创建的服务器。
此时一切正常,这是屏幕截图:
但我不希望我的 chrome 扩展依赖于网络,所以我决定使用 :
下载 boostrap
npm install boostrap
已下载 boostrap 3。
我也决定用webpack加载boostrap.min.css.
module: {
loaders: [{
test: /\.js$/,
loader: 'babel',
exclude: /node_modules/,
query: {
presets: ['react-hmre']
}
}, {
test: /\.css$/,
loaders: [
'style',
'css?modules&sourceMap&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]',
'postcss'
]
},
{test: /\.(woff|woff2)(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=application/font-woff'},
{test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=application/octet-stream'},
{test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: 'file'},
{test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=image/svg+xml'}]
}
我没有更改 css 加载器(来自样板),但我添加了用于网络字体和 svg 的加载器。
最后,我将 boostrap.min.css 包含在 javascript 入口点中:
import 'bootstrap/dist/css/bootstrap.min.css';
现在,这就是我的扩展程序的样子:
我认为加载了一部分boostrap(因为第二个版本中的link看起来和第一个版本中的link一样。但显然,其他组件不是已加载。
我也用react-boostrap
谢谢
我在评论中的想法是正确的,css?module locally load bootstrap.我更改了导入:
import '!style!css!bootstrap/dist/css/bootstrap.min.css';
有效
npm install bootstrap ;
并且:
调整 css 加载程序如下:
{
test: /\.css$/,
loaders: ['style', 'css'],
}
然后,导入 bootstrap :
import Bootstrap from 'bootstrap/dist/css/bootstrap.css';
对于 WEBPACK 2,(即在安装所有必要的依赖项之后)您可以包括 bootstrap 如下:-
在webpack.config.js
中添加css个加载器
{
test: /\.css$/,
use: [
{
loader: 'style-loader'
},
{
loader: 'css-loader',
options: {
importLoaders: 1
}
}
]
}
然后,在入口点脚本中导入bootstrap(即index.js或app.js,index.js在我的项目中)
import '!style-loader!css-loader!bootstrap/dist/css/bootstrap.css';
需要详细资料!!! More details here
我正在开发 chrome 扩展。我将 boostrap 3 用于 UI.
doctype html
html
head
meta(charset='UTF-8')
title (Boilerplate Popup)
link(rel="stylesheet", href="https://maxcdn.bootstrapcdn.com/bootstrap/latest/css/bootstrap.min.css")
style.
body { width: 500px; }
body
#root
script(src=env == 'prod' ? '/js/ext.bundle.js' : 'http://localhost:3000/js/ext.bundle.js')
这是我习惯于包含 boostrap 的方式。
localhost:3000 是用 webpack web server 创建的服务器。
此时一切正常,这是屏幕截图:
但我不希望我的 chrome 扩展依赖于网络,所以我决定使用 :
下载 boostrapnpm install boostrap
已下载 boostrap 3。
我也决定用webpack加载boostrap.min.css.
module: {
loaders: [{
test: /\.js$/,
loader: 'babel',
exclude: /node_modules/,
query: {
presets: ['react-hmre']
}
}, {
test: /\.css$/,
loaders: [
'style',
'css?modules&sourceMap&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]',
'postcss'
]
},
{test: /\.(woff|woff2)(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=application/font-woff'},
{test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=application/octet-stream'},
{test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: 'file'},
{test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=image/svg+xml'}]
}
我没有更改 css 加载器(来自样板),但我添加了用于网络字体和 svg 的加载器。
最后,我将 boostrap.min.css 包含在 javascript 入口点中:
import 'bootstrap/dist/css/bootstrap.min.css';
现在,这就是我的扩展程序的样子:
我认为加载了一部分boostrap(因为第二个版本中的link看起来和第一个版本中的link一样。但显然,其他组件不是已加载。
我也用react-boostrap
谢谢
我在评论中的想法是正确的,css?module locally load bootstrap.我更改了导入:
import '!style!css!bootstrap/dist/css/bootstrap.min.css';
有效
npm install bootstrap ;
并且:
调整 css 加载程序如下:
{
test: /\.css$/,
loaders: ['style', 'css'],
}
然后,导入 bootstrap :
import Bootstrap from 'bootstrap/dist/css/bootstrap.css';
对于 WEBPACK 2,(即在安装所有必要的依赖项之后)您可以包括 bootstrap 如下:-
在webpack.config.js
中添加css个加载器{ test: /\.css$/, use: [ { loader: 'style-loader' }, { loader: 'css-loader', options: { importLoaders: 1 } } ] }
然后,在入口点脚本中导入bootstrap(即index.js或app.js,index.js在我的项目中)
import '!style-loader!css-loader!bootstrap/dist/css/bootstrap.css';
需要详细资料!!! More details here