我已将我的项目从 Next.js 10 更新到 12。在所有更改中,我的一个部分停止工作,特别是从 Markdown 文件生成页面的部分。我不断收到错误:
\nTypeError: (0 , marked__WEBPACK_IMPORTED_MODULE_7__.default) is not a function\nRun Code Online (Sandbox Code Playgroud)\n\n我的 Next.js Javascript 模板是:
\nTypeError: (0 , marked__WEBPACK_IMPORTED_MODULE_7__.default) is not a function\nRun Code Online (Sandbox Code Playgroud)\n我当前的 package.json 是这样的:
\n/** @format */\nimport fs from \'fs\';\nimport path from \'path\';\nimport matter from \'gray-matter\';\nimport Head from \'next/head\';\nimport marked from \'marked\';\nimport { defaultLocale } from \'../../i18n.json\';\nimport useTranslation from \'next-translate/useTranslation\';\n\nimport Header from \'../../components/ui/Header/Header\';\nimport Footer from \'../../components/ui/Footer/Footer\';\nimport Main from \'../../components/ui/Main/Main\';\n\nconst postsDirectory = path.join(process.cwd(), \'__docs\');\n\nexport default function Doc({ htmlString, data }) {\n let { t } = useTranslation();\n\n return (\n <>\n <Head>\n <title>\n {data.title} \xe2\x80\x93 {t(\'common:version\', { version: data.version })}\n </title>\n <link rel=\'icon\' href=\'/favicon.png\' />\n </Head>\n\n <Header background=\'1\' elevation=\'4\' />\n <Main css=\'padding--16 display--grid\'>\n <h1>{data.title}</h1>\n <div\n dangerouslySetInnerHTML={{ __html: htmlString }}\n className=\'color--gray line-height--24\'\n />\n <hr />\n <p className=\'color--gray line-height--24\'>\n {t(\'common:version\', { version: data.version })}. Last update:{\' \'}\n {data.date}\n </p>\n </Main>\n <Footer />\n </>\n );\n}\n\nexport const getStaticPaths = async ({ locales }) => {\n let paths = [];\n\n const docs = fs.readdirSync(\'__docs\');\n console.log(docs);\n\n for (let slug of docs) {\n for (let locale of locales) {\n let fullpath = path.join(\n postsDirectory,\n slug,\n locale === defaultLocale ? \'index.md\' : `index.${locale}.md`\n );\n\n if (!fs.existsSync(fullpath)) {\n continue;\n }\n\n paths.push({ params: { slug }, locale });\n }\n }\n\n return {\n paths,\n fallback: false,\n };\n};\n\nexport const getStaticProps = async ({ params: { slug }, locale }) => {\n // we need to find and read the file\n const filename = locale === defaultLocale ? \'index.md\' : `index.${locale}.md`;\n const markdownWithMetadata = fs\n .readFileSync(path.join(postsDirectory, slug + \'/\' + filename))\n .toString();\n // we parse the content to strip the metadata\n const parsedMarkdown = matter(markdownWithMetadata);\n // we parse the content to convert it to html with marked\n const htmlString = marked(parsedMarkdown.content);\n return {\n props: {\n htmlString,\n data: parsedMarkdown.data,\n },\n };\n};\nRun Code Online (Sandbox Code Playgroud)\n我已经更新了React,也尝试在页面上导入React,但是根本不起作用。Next.js 默认导入 React,但在另一个组件中,我必须强制导入,当我在模板上使用 import React from \'react\' 时,我从 MODULE_7 转到 MODULE_8。
\nTypeError: (0 , marked__WEBPACK_IMPORTED_MODULE_8__.default) is not a function\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
17836 次 |
| 最近记录: |