使用 Next.js 和 reactstrap
使用 Next.js 和 reactstrap
我正在使用Next.js
创建React应用,并尝试使用reactstrap
提供的组件。
我似乎遇到了导入名为bootstrap/dist/css/bootstrap.min.css
的CSS文件的问题,就像reactstrap
指南所说的那样。
我看到的错误是在bootstrap/dist/css/bootstrap.min.css中出现错误
模块解析失败:意外的标记(6:3),您可能需要适当的加载程序来处理此文件类型。
有人知道我需要做什么才能使其正常工作吗? 我是一名新的Web开发人员,所以如果我遗漏了什么明显的内容,敬请谅解。
谢谢!
如果您仍然出现以下错误:
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 } })
- 现在您应该能够像这样从node_modules导入样式表:
import 'bootstrap-css-only/css/bootstrap.min.css';
注意:使用Next v 8+。
背景:
我花了几个小时试图导入作为node_module安装的CSS,各种解决方案大多是hacky的解决方法,但如上所示,有一个简单的解决方案。
它是由核心团队成员提供的。
编辑:从 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 () => Welcome to next.js 7!
你还可以使用几行配置来使用 CSS 模块。更多信息请查看 nextjs.org/docs/#css 文档。
早于 Next.js 7 的版本
Next.js 不会默认包含 CSS 导入。你需要使用 webpack loader。你可以在这里了解它的工作原理: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。该插件的文档使其相当简单:
- 您创建
pages/
中的_document
文件。 - 您在根目录下创建
next.config.js
文件。
使用文档中的代码片段应该使你能够导入 CSS 文件。
你需要至少 5.0 版本。你可以确保你安装了最新的 Next.js:npm i next@latest
。