在NextJs中访问服务器端代码中的静态资源?

我使用NextJS的静态渲染function来生成我的网站的静态版本,因此我想确保在页面的第一次呈现所有需要正确呈现的数据提供。

我有一些博客文章,我已经存储为.md文件在/静态,并希望访问他们在一个页面中,如:

import * as fs from "fs"; ... export default class extends React.Component<IProps, any> { static async getInitialProps (props: IServerProps) { const post = (await getDb()).posts.find(p => p.id == props.query.id); const markdown = fs.readFileSync(`/static/posts/${post.markdownFileName}`); return { post, markdown } } ... 

但是,如果尝试运行上面的,我得到以下错误:

This dependency was not found: * fs

所以我不知道我应该如何去访问这些静态资源,而在服务器上..

不幸的是,Next.js不允许使用webpack加载器来处理服务器上的不同文件types(虽然它们被用来构build客户端包),但是可以使用Babel插件。 Markdown内容的一个插件可以在这里find: https : //www.npmjs.com/package/babel-plugin-markdown

.babelrcconfiguration之后:

 { "plugins": ["markdown"] } 

可以使用markdown.require()来引入.md内容:

 const html = markdown.require('./foo.md') 

更多选项在链接中描述!