РЕДАКТИРОВАТЬ: Если я выйду из системы dotenv.config()
я получаю ошибку: Error: ENOENT: no such file or directory, open '/Users/myPathToApplication/.webpack/test/.env'
Я собираю свой серверный обработчик для использования кода es6 / es7. У меня есть env
переменные, которые я тоже пытаюсь использовать. Проблема в том, что dotenv
не работает, когда я связываю обработчик.
Например, одна из утилит, которую я использую, подключает mongoose
к моему приложению. Здесь я храню DB_URI
как переменную env. импортировать envdotjs из 'envdotjs';
import mongoose from 'mongoose';
mongoose.Promise = global.Promise;
require('dotenv').config();
let isConnected;
const connectToDatabase = () => {
if (isConnected) {
console.log('=> using existing database connection');
return Promise.resolve();
}
console.log('=> using new database connection');
return mongoose.connect(process.env.DB_URI).then(db => {
isConnected = db.connections[0].readyState;
});
};
module.exports = {
connectToDatabase
};
Однако DB_URI
не определен, и код ломается.
Вот мой веб-пакет:
const slsw = require('serverless-webpack');
const nodeExternals = require('webpack-node-externals');
module.exports = {
entry: slsw.lib.entries,
target: 'node',
devtool: 'source-map',
externals: [nodeExternals()],
mode: slsw.lib.webpack.isLocal ? 'development' : 'production',
module: {
rules: [
{
test: /\.js$/,
loader: 'babel-loader',
include: __dirname,
exclude: /node_modules/
}
]
}
};
Я запускаю это для того, чтобы использовать es6 / 7 на безсерверном обработчике, который работает просто отлично. Но переменные env ломаются. Я также попытался использовать модуль с именем envdotjs
и получил те же результаты, что переменные env не определены, поэтому я не думаю, что это проблема с dotenv
.