将 reactstrap 与 Next.js 一起使用
Using reactstrap with 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.
有谁知道我必须做什么才能使它正常工作?我是一名新的网络开发人员,如果我遗漏了任何明显的东西,我深表歉意。
谢谢!
编辑:从 Next.js 7 开始,支持导入 .css 文件所需要做的就是注册 withCSS next.config.js 中的插件。从安装插件开始:
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;
}
然后用 index.js
文件创建 pages
文件夹。然后你可以在你的组件中做这样的事情:
// ./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。该插件的文档使其相当简单:
- 您在
pages/
中创建了 _document
文件。
- 您在根目录中创建
next.config.js
文件。
使用文档中的代码片段应该可以让您导入 CSS 个文件。
您至少需要 5.0 版。您可以确保安装了最新的 Next.js:npm i next@latest
.
如果您仍然遇到错误:
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+
背景:
我花了几个小时试图简单地将 CSS 安装为 node_module 并且各种解决方案大多是 hacky workarounds,但如上所示,有一个 simple solution.
由核心团队成员之一提供
Next.js 9.3 及以上
截至 Next.js 9.3 you can now directly import SCSS files as global stylesheets. Read more about next.js built-in SASS support here。
npm install sass reactstrap bootstrap
Index.scss
@import '~node_modules/bootstrap/scss/bootstrap';
我正在使用 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.
有谁知道我必须做什么才能使它正常工作?我是一名新的网络开发人员,如果我遗漏了任何明显的东西,我深表歉意。
谢谢!
编辑:从 Next.js 7 开始,支持导入 .css 文件所需要做的就是注册 withCSS next.config.js 中的插件。从安装插件开始:
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;
}
然后用 index.js
文件创建 pages
文件夹。然后你可以在你的组件中做这样的事情:
// ./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。该插件的文档使其相当简单:
- 您在
pages/
中创建了_document
文件。 - 您在根目录中创建
next.config.js
文件。
使用文档中的代码片段应该可以让您导入 CSS 个文件。
您至少需要 5.0 版。您可以确保安装了最新的 Next.js:npm i next@latest
.
如果您仍然遇到错误:
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+
背景: 我花了几个小时试图简单地将 CSS 安装为 node_module 并且各种解决方案大多是 hacky workarounds,但如上所示,有一个 simple solution.
由核心团队成员之一提供
Next.js 9.3 及以上
截至 Next.js 9.3 you can now directly import SCSS files as global stylesheets. Read more about next.js built-in SASS support here。
npm install sass reactstrap bootstrap
Index.scss
@import '~node_modules/bootstrap/scss/bootstrap';