如何在 nuxt.config.ts 中为 Cloudinary 模块使用 privateRuntimeConfig .env?

Posted

技术标签:

【中文标题】如何在 nuxt.config.ts 中为 Cloudinary 模块使用 privateRuntimeConfig .env?【英文标题】:How to use privateRuntimeConfig .env inside nuxt.config.ts for the Cloudinary module? 【发布时间】:2021-12-18 22:53:27 【问题描述】:

这可能是一个非常愚蠢的问题,但是在尝试在我的 Nuxt 应用程序上设置 Cloudinary 时,我无法弄清楚如何利用 privateRuntimeConfig 将必要的密钥传递给 Cloudinary 插件,因为这一切都在发生里面nuxt.config.ts

意思是,在我使用privateRuntimeConfig 的同一个地方,在nuxt.config.ts 内部,也是我需要将它们传递给Cloudinary 插件配置的地方,但这不起作用。那我该怎么办呢?

export default defineNuxtConfig(
    privateRuntimeConfig: 
        cloudinary: 
            cloudName: process.env.CLOUDINARY_CLOUD_NAME,
            apiKey: process.env.CLOUDINARY_API_KEY,
            apiSecret: process.env.CLOUDINARY_API_SECRET
        
    ,
    cloudinary: 
        cloudName: '', // ??
        apiKey: '', // ??
        apiSecret: '', // ??
    
)

我觉得有一个明显的解决方案,但我目前看不到,因为我的大脑中有一个结。

【问题讨论】:

这能回答你的问题吗? How to use .env variables in Nuxt 2 or 3? 【参考方案1】:

当使用像这里这样的模块的变量时(直接进入nuxt.config.js/ts),你不能引用运行时变量。

process.env.CLOUDINARY_CLOUD_NAME一样直接使用即可。 有关我的完整答案的更多信息:https://***.com/a/67705541/8816585

【讨论】:

但是它们不是可以在客户端中访问,因此不安全吗? 由于它是官方模块,我确实认为该模块只会在构建期间使用这些凭据(仅限服务器端),并且不会在客户端运行时公开这些凭据。如果官方模块不遵循安全基础,那将是非常愚蠢的,但由于它是由Maya 完成的,我确实认为这个完全没问题。 @Nachtfunke

以上是关于如何在 nuxt.config.ts 中为 Cloudinary 模块使用 privateRuntimeConfig .env?的主要内容,如果未能解决你的问题,请参考以下文章

将 nuxt 3 从 TypeScript 迁移到 JavaScript

从 Express 服务器以编程方式构建 Nuxt.js 时出错

BZOJ 1116: [POI2008]CLO

[POI2008]CLO

bzoj1116 [POI2008]CLO

bzoj1116 [POI2008]CLO