使用 react-bootstrap-typeahead 产生 CSS 错误

IT技术 reactjs webpack
2021-05-16 11:40:38

我不加修改地使用以下内容(除了尝试将预先输入添加到项目中):

React Bootstrap 预先输入

React Redux 通用热示例

typeahead module中有一个关于设置 CSS 的注释:

Browserify 用户需要使用 browserify-css(或类似的东西)来处理 CSS 捆绑,而 Webpack 用户需要在他们的 webpack 配置文件中使用 css-loader 和/或 style-loader。

这是示例中的库存 Webpack 配置:

    loaders: [
  { test: /\.jsx?$/, exclude: /node_modules/, loaders: ['babel?' + JSON.stringify(babelLoaderQuery), 'eslint-loader']},
  { test: /\.json$/, loader: 'json-loader' },
  { test: /\.less$/, loader: 'style!css?modules&importLoaders=2&sourceMap&localIdentName=[local]___[hash:base64:5]!autoprefixer?browsers=last 2 version!less?outputStyle=expanded&sourceMap' },
  { test: /\.scss$/, loader: 'style!css?modules&importLoaders=2&sourceMap&localIdentName=[local]___[hash:base64:5]!autoprefixer?browsers=last 2 version!sass?outputStyle=expanded&sourceMap' },
  { test: /\.woff(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=application/font-woff" },
  { test: /\.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" },
  { test: /\.css$/, loader: "css=style!css"}, // I added this line
  { test: webpackIsomorphicToolsPlugin.regular_expression('images'), loader: 'url-loader?limit=10240' }
]

但我仍然收到此错误:

[0] ./~/react-bootstrap-typeahead/css/Typeahead.css
[0] Module parse failed: /Users/myproject/react-redux-universal-hot-example/node_modules/react-bootstrap-typeahead/css/Typeahead.css Unexpected token (1:0)
[0] You may need an appropriate loader to handle this file type.
[0] SyntaxError: Unexpected token (1:0)

其次是这个:

[1] [require-hook] Trying to load "Token.css" as a "*.js"

所以显然我做错了什么。我一直在谷歌搜索,但我有点困惑:

  1. 我做错了什么使错误消失。
  2. 这些装载机究竟想完成什么,以及为什么没有完成。

谢谢!

2个回答

我认为这应该有效:

{ test: /\.css$/, include: /node_modules/, loader: "style!css"}

而且您需要拥有css-loaderstyle-loader安装。不确定 Webpack 报告丢失加载器的效果如何。

请注意,该module的 v0.5.x 不再直接在 JS 文件中要求 CSS,因此这应该不再是问题。

至于你原来的问题,菲利普的回答应该有效,但如果没有,你也可以尝试:

{test: /\.css$/, include: /node_modules/, loader: 'style-loader!css-loader'}