1

編集:ログアウトするdotenv.config()と、次のエラーが表示されます:Error: ENOENT: no such file or directory, open '/Users/myPathToApplication/.webpack/test/.env'

es6/es7 コードを使用するために、サーバーレス ハンドラーをバンドルしています。私もenv使用しようとしているいくつかの変数があります。問題はdotenv、ハンドラーをバンドルすると機能しないように見えることです。

たとえば、私が使用しているユーティリティの 1 つは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 を使用するために、これを実行しています。しかし、環境変数は壊れています。と呼ばれるモジュールも使用してみenvdotjsましたが、env 変数が定義されていないという同じ結果が得られたので、これは問題ではないと思いますdotenv

4

1 に答える 1