如何复制其他文件,例如config/config.yaml,到 .next 文件夹

Posted

技术标签:

【中文标题】如何复制其他文件,例如config/config.yaml,到 .next 文件夹【英文标题】:How to copy additional files e.g. config/config.yaml, to .next folder 【发布时间】:2021-10-05 09:50:42 【问题描述】:

NextJS 项目的文件夹结构如下:

_posts/ 成分/ 挂钩/ config/

yarn build 正确复制所有依赖项,config/ 文件夹除外。它包括运行server 所需的文件。

有没有办法告诉 nextJS 编译器/捆绑器将 config/ 文件夹复制到 .next 文件夹中?

我尝试过的事情:

    使用cp -rf config/ .next/ && next build 更新 package.json 中的“构建”步骤 --- 没有帮助。 next build 清理 .next 文件夹。禁用自动清理没有用。 查看next.config.js 的文档以查看是否有可以使用的预构建挂钩。 --- 没有。next build 之后复制 config/ 文件夹 --- 没有帮助,因为 next build 无法抱怨缺少 config/config.yaml 文件。

【问题讨论】:

Next.js 自带了通过环境变量和 dotenv 文件来管理这种配置。我建议使用内置方法而不是滚动您自己的解决方案。 nextjs.org/docs/basic-features/environment-variables 是的。我实际上尝试过。但是,当我尝试使用环境变量时,例如process.env.POSTGRES_URL,打字稿智能感知和编译失败,说明它可以是未定义的(当传递给 Sequelize 构造函数时)。使用process.env.POSTGRES_URL! 强制 TS 将其识别为非未定义也无济于事。 啊,这是一个比较容易解决的问题,你可以用简单的方法((process.env as any).POSTGRES_URL)或者“正确”的方法***.com/questions/47008773/… 我尝试了“正确”的方式,但没有帮助。不过,我可以在 VSCode 中看到智能感知。我会尝试((process.env as any).POSTGRES_URL) 【参考方案1】:

按照@kyle 的建议,使用((process.env as any).POSTGRES_URL 解决了构建问题。

我在使用 mocha 运行测试时遇到了另一个问题。我最终在测试的执行流程中使用了dotenv(加载.env.test.local)。

【讨论】:

以上是关于如何复制其他文件,例如config/config.yaml,到 .next 文件夹的主要内容,如果未能解决你的问题,请参考以下文章

数据库无法连接如何解决

web.config配置文件中的configSource属性

****CI框架源码阅读笔记7 配置管理组件 Config.php

ubuntu编译openssl遇到的问题

一键部署MongoDB集群Windows版

lumen框架