我正在尝试使用该dotenv-webpack插件。这在本地效果很好。但是当我部署到 Heroku 时失败了。
我已经根据这个git issue遵循了建议,但仍然有问题。
我的 webpack 配置如下所示:
const path = require('path');
const Dotenv = require('dotenv-webpack');
module.exports = {
context: path.join(__dirname, '/src'),
entry: {
javascript: './js/index'
},
output: {
filename: 'bundle.js',
path: path.join(__dirname, '/dist'),
},
resolve: {
alias: {
react: path.join(__dirname, 'node_modules', 'react')
},
extensions: ['.js', '.jsx'],
},
module: {
rules: [
{
test: /\.jsx?$/,
exclude: /node_modules/,
loaders: ['babel-loader'],
},
{
test: /\.html$/,
loader: 'file?name=[name].[ext]',
},
],
},
plugins: [
new Dotenv({
path: path.resolve(__dirname,'.env')
}),
] …Run Code Online (Sandbox Code Playgroud) 我正在使用 nodejs 服务器端 api,使用dotenv npm 包设置环境变量,并从package.json 中的npm 脚本运行代码,如下所示:
"scripts": {
"local": "cross-env NODE_ENV=local nodemon ./bin/www"
}
Run Code Online (Sandbox Code Playgroud)
我需要的是配置我的 .vscode/launch.json 文件。
目前它看起来像:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": []
}
Run Code Online (Sandbox Code Playgroud)
请指导我。谢谢,Gopal.R
所以基本上我想将我的开发 Firestore 数据库与我的部署数据库分开。
我创建了 2 个 Firebase 项目:
我还创建了 2 个 .env 文件:
Firebase 托管工作正常,因为我正在使用firebase use,然后我选择要托管代码的那个。问题出在 Firebase FireStore 上。由于它们都是 Firebase 项目,因此在部署时,它们将被视为生产项目。
那么有没有一种方法可以让我对 Firebase 说某个项目是用于开发或暂存目的呢?或者有没有办法部署到 Firebase 强制我的 .env.development 文件?
environment-variables firebase reactjs google-cloud-firestore dotenv
我正在使用 Zeit/Now 部署 Nuxt 应用程序。在开发阶段,我使用一个.env文件将机密存储到我的 Contentful CMS,process.env并使用 nuxt-dotenv 包公开机密。为此,我在 nuxt.config 的顶部调用了require('dotenv').config().
然后我用 Zeit/Now 存储了这些机密,并创建了一个 now.json 来为构建和运行时设置它们,如下所示:
{
"env": {
"DEMO_ID": "@demo_id"
},
"build": {
"env": {
"DEMO_ID": "@demo_id"
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用该设置,构建仅适用于索引页面,所有 Javascript 都不起作用。只有当我将 env-property 添加到nuxt.config.js文件时,该应用程序才开始在 Zeit-server 上正常工作。
require('dotenv').config()
export default {
...
env: {
DEMO_ID: process.env.DEMO_ID
},
...
modules: [
'@nuxtjs/dotenv'
],
...
}
Run Code Online (Sandbox Code Playgroud)
但是:当我检查上传的 Javascript 文件时,我的秘密被暴露了,这显然是我不想要的。
我在这里做错了什么?谢谢你的帮助。
config我想将环境变量加载到我的 Express 应用程序的常规中。在本地,我使用一个.env文件,但在部署时,我会将环境变量注入到 docker 容器中。
所以,我有default.json一些硬编码的配置值。然后我得到了custom-environment-variables.json这样的文件:
"app": {
"nodeEnv": "NODE_ENV",
"port": "PORT",
"hostname": "HOSTNAME"
}
"mongoDb": {
"connectionString": "MONGODB_CONNECTION_STRING"
},
"redis": {
"connectionString": "REDIS_CONNECTION_STRING"
},
"logDna": {
"key": "LOGDNA_KEY"
}
Run Code Online (Sandbox Code Playgroud)
以及.env我项目的根目录中的一个文件。
在服务器启动文件中我有:
import * as dotenv from 'dotenv';
dotenv.config();
import * as config from 'config';
console.log(process.env);
console.log(config);
Run Code Online (Sandbox Code Playgroud)
我还尝试将它们按正常顺序排列:
import * as config from 'config';
import * as dotenv from 'dotenv';
dotenv.config();
Run Code Online (Sandbox Code Playgroud)
我尝试的另一件事是将应用程序声明与服务初始化和应用程序启动分开。就像这样app.ts:
import * as App from 'express';
import …Run Code Online (Sandbox Code Playgroud) 我在我的 NestJS 项目中使用 dotenv v8.2.0,它一直在我的生产环境中工作。我在新电脑上克隆了该项目,在根文件夹中创建了一个包含正确变量的 .env 文件,但 .env 文件现在没有内置到 dist 文件夹中。
.env 文件:
databaseHost=database-di...
databasePassword=a3^U...
Run Code Online (Sandbox Code Playgroud)
我的 main.ts 文件的设置(仅相关部分):
import { config } from 'dotenv';
import * as path from 'path';`
const ENV_FILE = path.join(__dirname, '..', '.env');
config({ path: ENV_FILE });
Run Code Online (Sandbox Code Playgroud)
当我记录 dotenv 配置函数时,我得到以下信息:
{
error: Error: ENOENT: no such file or directory, open 'C:\Users\Jasper\***\dist\.env'
at Object.openSync (fs.js:461:3)
at Object.readFileSync (fs.js:364:35)
at Object.config (C:\Users\Jasper\***\node_modules\dotenv\lib\main.js:96:29)
at Object.<anonymous> (C:\Users\Jasper\***\dist\src\main.js:21:22)
at Module._compile (internal/modules/cjs/loader.js:1176:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1196:10)
at Module.load (internal/modules/cjs/loader.js:1040:32)
at Function.Module._load (internal/modules/cjs/loader.js:929:14)
at Function.executeUserEntryPoint …Run Code Online (Sandbox Code Playgroud) 我正在使用 Prisma 开发一个 Nestjs 项目,并且我想在 Prisma 中使用多个 .env 文件。我按照这里的指南进行操作。根据指南,我添加:
"migratetest:mysql": "dotenv -e .env.test -- npx prisma migrate dev",
"migratedev:mysql": "dotenv -e .env.development -- npx prisma migrate dev"
Run Code Online (Sandbox Code Playgroud)
到我的 package.json。我运行migratetest:mysql加载 .env.test 文件并进行迁移。然后,我运行start: dev启动该应用程序。然而,棱镜说:
Error: error: Environment variable not found: DATABASE_URL.
--> schema.prisma:10
|
9 | provider = "mysql"
10 | url = env("DATABASE_URL")
|
Run Code Online (Sandbox Code Playgroud)
似乎在我的项目中找不到 .env 文件(根据指南,没有 .env 文件,应该更改为 .env.test 和 .env.development)
这是我的 .env.test:
DATABASE_URL=mysql://root:123456@localhost:3306/test
Run Code Online (Sandbox Code Playgroud)
这是我的.env.development:
DATABASE_URL=mysql://root:123456@localhost:3306/dev
Run Code Online (Sandbox Code Playgroud)
请帮忙 :)
当我执行 pip install dotenv 时,它会这样说 -
\n`正在收集 dotenv\n使用缓存的 dotenv-0.0.5.tar.gz (2.4 kB)\n准备元数据 (setup.py) ... 错误\n错误:子进程退出并出现错误
\n\xc3\x97 python setup.py Egg_info 未成功运行。\n\xe2\x94\x82 退出代码: 1\n\xe2\x95\xb0\xe2\x94\x80> [72 行输出]\nC: \\Users\\Anju Tiwari\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\setuptools\\installer.py:27:SetuptoolsDeprecationWarning:setuptools.installer 已弃用。PEP 517 安装程序应满足\n要求。\nwarnings.warn(\n错误:子进程退出并出现错误
\n python setup.py egg_info did not run successfully.\n exit code: 1\n \n [17 lines of output]\n Traceback (most recent call last):\n File "<string>", line 2, in <module>\n File "<pip-setuptools-caller>", line 14, in <module>\n File "C:\\Users\\Anju Tiwari\\AppData\\Local\\Temp\\pip-wheel-xv3lcsr9\\distribute_009ecda977a04fb699d5559aac28b737\\setuptools\\__init__.py", line 2, in <module>\n from setuptools.extension import Extension, Library\n File "C:\\Users\\Anju Tiwari\\AppData\\Local\\Temp\\pip-wheel-xv3lcsr9\\distribute_009ecda977a04fb699d5559aac28b737\\setuptools\\extension.py", line 5, …Run Code Online (Sandbox Code Playgroud) 我正在使用 Electron Forge 构建一个 Electron 应用程序,我需要将环境变量传递给最终的可执行文件。
我尝试forge.config.js像这样定义环境变量:
env: {
DB_PATH_RELATIVE: process.env.DB_PATH_RELATIVE,
DB_CURRENT_VERSION: process.env.DB_CURRENT_VERSION
}
Run Code Online (Sandbox Code Playgroud)
但环境变量似乎没有传递给最终的可执行文件。我还尝试使用 和 中的脚本设置环境变量cross-env,但这似乎也不起作用,只是可以从似乎只能在该文件中访问的位置访问start,并且不会传递到最终的可执行文件。makepackage.jsonforge.config.js
将环境变量传递到 Electron Forge 应用程序的最终可执行文件的正确方法是什么?任何帮助,将不胜感激。谢谢!