gpt4 book ai didi

nestjs - 在 nestjs 中将 .html 文件作为字符串导入

转载 作者:行者123 更新时间:2023-12-05 04:52:26 24 4
gpt4 key购买 nike

我希望能够将 .html 文件作为字符串模板导入到 NestJS 应用程序中。为了满足 TypeScript,我创建了 text.d.ts,如下所示:

declare module "*!text" {
const content: string;
export default content;
}

并将其导入到这样的文件中:

import html from 'src/templates/test!text';

TypeScript 没有任何提示。但是,当我尝试运行应用程序我收到以下错误:

internal/modules/cjs/loader.js:905
throw err;
^

Error: Cannot find module 'src/templates/test!text'

如何解决这个错误?

提前致谢。

最佳答案

可能是因为您从 dist/ 文件夹运行编译后的代码,而 .html 文件不是从 src/ 复制的。

如果是这样,您需要将这些行添加到 nest-cli.json(“compilerOptions” 部分):

    "assets": ["src/**/*.html"],
"watchAssets": true,

(基于 https://stackoverflow.com/a/61673191/1760643 答案,参见 NestJS docs about assets copying )

更新:import 对我也不起作用。

Used this hack :

requireAsPlainTextConstructor.ts:

import fs from 'fs';
import path from 'path';

export default function requireAsPlainTextConstructor(dirname: string) {
return (filePath: string) => {
const filename = path.resolve(dirname, filePath);
return fs.readFileSync(filename, 'utf8');
};
}

目标文件:

import requireAsPlainTextConstructor from 'requireAsPlainTextConstructor';

const requireAsPlainText = requireAsPlainTextConstructor(__dirname);
const myHtml = requireAsPlainText('my.html');

关于nestjs - 在 nestjs 中将 .html 文件作为字符串导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66514857/

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