【发布时间】:2016-12-24 14:06:08
【问题描述】:
我正在开发一个 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 网络服务器创建的服务器。
此时一切正常,这是一个屏幕截图:
但我不希望我的 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 加载程序(来自样板文件),但我添加了 web 字体和 svg 的加载程序。
最后,我在 javascript 入口点中包含了 boostrap.min.css :
import 'bootstrap/dist/css/bootstrap.min.css';
现在,这就是我的扩展程序的样子:
我认为boostrap的一部分被加载了(因为第二版中的链接看起来与第一版中的链接相同。但显然,其他组件没有加载。
我也使用 react-boostrap。
谢谢
【问题讨论】:
-
刚写完这个问题,我想我找到了:
css?modules,因为css模块的官方网站:A CSS Module是一个CSS文件,其中所有类名和动画名都在本地范围内默认
标签: javascript css twitter-bootstrap webpack webpack-style-loader