将 Reactstrap 与 Next.js 结合使用

新手上路,请多包涵

我正在使用 Next.js 创建一个 React 应用程序,并尝试使用 reactstrap 提供的组件。

我似乎遇到的问题似乎涉及导入名为 bootstrap/dist/css/bootstrap.min.css 的 CSS 文件,正如 reactstrap 指南所说的那样。

我看到的错误是 Error in bootstrap/dist/css/bootstrap.min.css Module parse failed: Unexpected token (6:3) You may need an appropriate loader to handle this file type.

有谁知道我必须做些什么才能使这项工作正常进行?我是一名新的网络开发人员,如果我遗漏了任何明显的东西,我深表歉意。

谢谢!

原文由 gsapienza 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 378
2 个回答

编辑:从 Next.js 7 开始,支持导入 .css 文件所需要做的就是在 next.config.js 中注册 withCSS 插件。从安装插件开始:

 npm install --save @zeit/next-css

然后在您的项目根目录中创建 next.config.js 文件并向其中添加以下内容:

 // next.config.js
const withCSS = require('@zeit/next-css')
module.exports = withCSS({/* my next config */})

您可以通过创建一个简单的页面并导入一些 CSS 来测试它是否有效。首先创建一个 CSS 文件:

 // ./index.css
div {
    color: tomato;
}

然后使用 pages 文件创建 index.js 文件夹。然后你可以在你的组件中做这样的事情:

 // ./pages/index.js
import "../index.css"
export default () => <div>Welcome to next.js 7!</div>

您还可以使用带有几行配置的 CSS 模块。有关这方面的更多信息,请查看 nextjs.org/docs/#css 上的文档。


Next.js < 版本 7

默认情况下,Next.js 不附带 CSS 导入。你必须使用 webpack 加载器。您可以在此处了解其工作原理: https://zeit.co/blog/next5#css,-less,-sass,-scss-and-css-modules

Next.js 也有 CSS、SASS 和 SCSS 的插件。这是 CSS 的插件:https: //github.com/zeit/next-plugins/tree/master/packages/next-css 。该插件的文档使其相当简单:

  1. 您在 _document 中创建 pages/ 文件。
  2. 您在根目录中创建 next.config.js 文件。

使用文档中的代码片段应该可以让您导入 CSS 文件。

您至少需要 5.0 版。您可以确保安装了最新的 Next.js: npm i next@latest

原文由 mtl 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果您仍然收到错误:

 Unexpected token (6:3) You may need an appropriate loader to handle this file type.

在你的 next.config.js 中试试这个:

 // next.config.js
const withCSS = require('@zeit/next-css')

module.exports = withCSS({
  cssLoaderOptions: {
    url: false
  }
})

  1. 现在你应该可以像这样从 node_modules 导入样式表了:
 import 'bootstrap-css-only/css/bootstrap.min.css';

注意:使用 Next v 8+

背景: 我花了几个小时尝试简单地导入一个作为 node_module 安装的 CSS,各种解决方案大多是 hacky workarounds,但如上所示,有一个 简单的解决方案

它是由核心团队成员之一提供的

原文由 Greg Tomasik 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题