我的React应用程序一直很好,也使用了全局CSS。
我运行了npm i next-images
,添加了一个图片,编辑了next.config.js文件,运行了npm run dev
,现在我收到了这个消息:
全局CSS不能从除您的自定义<App>之外的文件中导入。请将所有全局CSS导入移动到pages/_app.js。
阅读更多:https://err.sh/next.js/css-global
我已经查看了文档,但由于我是React新手,我觉得说明有点混乱。
此外,为什么会出现这个错误?你认为这与npm安装有关吗?
我尝试删除我添加的新文件以及它们的代码,但这并没有解决问题。我也尝试了“阅读更多”中建议的方法。
我的最高层组件:
import Navbar from './Navbar';
import Head from 'next/head';
import '../global-styles/main.scss';
const Layout = (props) => (
<div>
<Head>
<title>Bitcoin Watcher</title>
</Head>
<Navbar />
<div className="marginsContainer">
{props.children}
</div>
</div>
);
export default Layout;
我的 next.config.js
// next.config.js
const withSass = require('@zeit/next-sass')
module.exports = withSass({
cssModules: true
})
我的 main.scss 文件
@import './fonts.scss';
@import './variables.scss';
@import './global.scss';
我的global.scss
body {
margin: 0;
}
:global {
.marginsContainer {
width: 90%;
margin: auto;
}
}
我觉得最奇怪的是,这个错误出现时并没有更改任何与CSS或Layout.js有关的内容,而且之前它还能正常工作?
我已经将main.scss导入到pages/_app.js页面中,但样式仍然无法生效。以下是_app.js页面的代码:
import '../global-styles/main.scss'
export default function MyApp({ Component, props }) {
return <Component {...props} />
}
node-sass
代替@zeit/next-sass
,我刚刚测试过并更新了答案。如果您在命令行或浏览器控制台中遇到任何特定错误,请告诉我。 - Nikolai Kiselev