如何复制其他文件,例如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属性