Type error: Cannot find module '../world.md' or its corresponding type declarations.
完整示例: global.d.ts
declare module '*.md'
页/索引.tsx
import world from '../world.md'
export default function IndexPage() {
const what: string = 'my'
// Would fail on build as desired.
// const what2: int = 'world2'
return <div>hello {what} {world}</div>
}
4条答案
按热度按时间lyr7nygr1#
您可以配置Next.js webpack加载器来加载markdown文件并将其作为字符串返回,例如:
运行时:
会出现如下内容:
使用markdown字符串,你可以做任何你想做的事情。例如,用marksy处理它。
rqcrx0a62#
更快的"Next.js方法"是使用插件next-mdx
文件:https://github.com/vercel/next.js/tree/canary/packages/next-mdx
wtzytmuj3#
只需安装
raw-loader
然后编辑您的next.config.js
xpcnnkqh4#
更新:不严格要求
emit-file-loader
,弃用raw-loader
以支持资产模块https://stackoverflow.com/a/47954368/895245的一些更新可能是由于最新的开发:
raw-loader
:https://stackoverflow.com/a/47954368/895245不再需要安装任何额外的软件包emit-file-loader
似乎不再必要,不确定是否需要它,或者它是否用于更专业的东西所以我们可以稍微简化一下
pages/index.js
next.config.js
package.json
world.md
让它从Typescript工作
遗憾的是,boch
raw-loader
和资产模块需要更多的打字工作:https://github.com/webpack-contrib/raw-loader/issues/56#issuecomment-423640398您必须创建一个文件:global.d.ts
否则,导入将失败,并显示:
完整示例:
global.d.ts
页/索引.tsx
next.config.js
package.json
world.md