我正在开发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服务器创建的服务器。

现在一切正常,这是屏幕截图:

javascript - 使用webpack包含 bootstrap-LMLPHP

但是我不希望自己的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';

现在,这就是我的扩展名:

javascript - 使用webpack包含 bootstrap-LMLPHP

我认为Boostrap的一部分已加载(因为第二个版本中的链接看起来与第一个版本中的链接相同。但是显然,其他组件未加载。

我也使用react-boostrap。

谢谢

最佳答案

我在评论中的想法是正确的,css?module本地加载引导程序。我更改导入:
import '!style!css!bootstrap/dist/css/bootstrap.min.css';
它有效

09-25 19:27