gpt4 book ai didi

javascript - Webpack raw-loader 在需要 markdown 文件时出错

转载 作者:行者123 更新时间:2023-12-01 16:25:40 25 4
gpt4 key购买 nike

raw-loader 在尝试请求任何 .md 文件时出错。

添加原始加载器以导入 Markdown 文件:

  test: /\.md$/i,
use: [{
loader: 'raw-loader',
options: {
esModule: false
}
}],

.js文件中,需要markdown文件..

return require(postPath)
// postPath is '../posts/awards.md'
Error: Cannot find module '../posts/awards.md'
at webpackEmptyContext (eval at <path to file>)
....

markdown文件的路径是相对路径:/posts/awards.md

如果我将 awards.md 更改为 awards.json 它会起作用。所以可能是 raw-loaderawards.md 中寻找 export 但找不到,因此出错了? esModule: false 的目的不是要指示 Webpack 不要将其视为模块吗?

最佳答案

您似乎遇到了与 this person. 相同的问题

引用一个答案:

Webpack performs a static analyse at build time.

It doesn't try to infer variables which that import(test) could be anything, hence the failure.

It is also the case for import(path+"a.js").

If you need truly dynamic imports, you have to restrict it to a known path:

import("./locales/" + locale + ".js")

我重新创建了你的问题,果然:

function test(mod) {
return require(mod)
}

console.log(test("./test.md"))

不起作用。 但是这有效:

function test(mod) {
return require("./" + mod)
}

console.log(test("test.md"))

因此,将您的代码更改为这样就足够了:

return require("../" + postPath + ".md")

并将 postPath 更改为:

// postPath is 'posts/awards'

关于javascript - Webpack raw-loader 在需要 markdown 文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62123785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com