我正在尝试使用该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
我使用带有特殊字符的密码,symfony 返回错误“参数格式错误”。
我怎样才能使用这种密码? foo?bar
我尝试使用这样的变量
DATABASE_USER='foo'
DATABASE_PASSWORD='foo?bar'
DATABASE_URL=mysql://${DATABASE_USER}:${DATABASE_PASSWORD}@100.100.100.100:3306/db
Run Code Online (Sandbox Code Playgroud)
但不工作
我正在使用 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 文件时,我的秘密被暴露了,这显然是我不想要的。
我在这里做错了什么?谢谢你的帮助。
对于我的测试框架,我使用dotenv来读取和初始化不同测试环境的环境变量。现在我想使用特定的环境变量值作为另一个环境变量的值和名称的一部分。
因此,我在使用 .envexport INSTANCE=1文件初始化 env 文件之前设置了环境变量dotenv。
这是我的环境文件,其中包含我想要初始化的所有环境变量dotenv:
# INSTANCE as part of env var value
MY_DOMAIN="http://mypage/"$INSTANCE""
# INSTANCE as part of env var name
SUBDOMAIN"$INSTANCE"="/mysubdomain"
Run Code Online (Sandbox Code Playgroud)
而且这个指标也不起作用:
# INSTANCE as part of env var value
MY_DOMAIN=http://mypage/${INSTANCE}
# INSTANCE as part of env var name
SUBDOMAIN${INSTANCE}=/mysubdomain
Run Code Online (Sandbox Code Playgroud)
这可以通过 bash 来完成
export MY_DOMAIN="http://mypage/"$INSTANCE"" SUBDOMAIN"$INSTANCE"="/mysubdomain"
echo $MY_DOMAIN
http://mypage/1
echo $SUBDOMAIN1
/mysubdomain
Run Code Online (Sandbox Code Playgroud)
但使用dotenv它对我来说不起作用。我有以下代码:
const dotenv = require("dotenv");
var result = dotenv.config({ path: '/path/to/my/env/file' });
console.log(result.parsed);
Run Code Online (Sandbox Code Playgroud)
产生 …
在我们公司,几个内部项目依赖相同的复制代码部分来处理与相同 API(例如:Google Suite、JIRA 等)的连接。为了避免为新项目一遍又一遍地复制相同的代码,我想创建收集这些 API 类的 Symfony 包。
棘手的部分:我正在寻找一种方法将必要的环境变量自动添加到.env,就像Symfony 的配方结构那样。但由于这些项目只能在内部使用,因此将它们的配方配置推送到公共存储库对我来说是行不通的。添加自定义配方服务器(如moay 的服务器)对我来说看起来很有趣,但需要在每个项目中进行额外配置composer.json。
有没有更好的方法来解决这个问题,这样我就可以简单地在我的项目中定义所需的变量,这样它们就可以在.env没有任何额外魔法的情况下被添加进来?
注意:任何需要symfony/flex都可以,因为这应该是我们公司所有新项目的一部分
这些是我想避免的解决方案:
我正在尝试在我的 vue 应用程序中使用process.env。我创建了两个.env文件,一个用于生产.env.production,另一个用于开发.env.development。这两个文件位于我的 vue 项目的根目录中,但 vue cli 会忽略它们。我创建了一个环境变量,在组件中调用该Home.vue变量来设置不同的开发/生产图像的路径。问题是,构建后,当我运行我的应用程序来测试它时,我会收到此错误
TypeError: Cannot read property 'env' of undefined
Run Code Online (Sandbox Code Playgroud)
它与我要加载的图像的 src 标签中设置的路径有关
<img class="img-fluid" :src="`${process.env.VUE_APP_PATH_START}/img/background.jpg`">
Run Code Online (Sandbox Code Playgroud)
我的.env文件看起来像这个开发环境文件
VUE_APP_PATH_START = ../assets/
Run Code Online (Sandbox Code Playgroud)
生产环境文件
VUE_APP_PATH_START = /
Run Code Online (Sandbox Code Playgroud)
我在构建中遇到此错误是否有任何原因以及如何修复它?
我正在尝试在 SvelteKit 项目中使用 dotenv.config() 。
我可以npm run build成功运行。但是当我尝试启动服务器(使用node build)时,它会抛出Error: Dynamic require of "fs" is not supported.
我尝试注释掉 dotenv 部分src/routes/test.js并再次构建,这次服务器启动没有任何错误。(我创建的项目npm init svelte@next没有使用typescript,除了这里的代码之外,其他什么都没有改变)
这里应该如何使用dotenv在运行时加载环境变量?
svelte.config.js
import node from '@sveltejs/adapter-node';
const config = {
kit: {
adapter: node(),
target: '#svelte'
}
};
export default config;
Run Code Online (Sandbox Code Playgroud)
/src/routes/test.js
import dotenv from 'dotenv';
dotenv.config();
export function get() {
return {
body: {
test: process.env.TEST
}
}
}
Run Code Online (Sandbox Code Playgroud)
.env
TEST=123
Run Code Online (Sandbox Code Playgroud) 我正在使用 flutter_dotenv 来管理一些 API 密钥 - https://pub.dev/packages/flutter_dotenv
根据说明,我应该将 .env 文件添加到 pubspec.yaml 中的资产中,但是当我运行时,flutter build web它将 .env 文件添加到构建中以进行部署。这对我来说似乎不正确,因为根据我的理解,.env 文件不应该公开部署在任何地方。
environment-variables flutter dotenv flutter-web flutter-dotenv