2

開発と本番用の環境変数を設定するために dotenv をインストールしました。これらの変数の 1 つは です。環境ROOT_APIファイルは次のようになります。

NODE_ENV=dev
ROOT_API=http://localhost/project/public/
PORT=8000

axios で API リクエスト構成を設定し、次のように dotenv リポジトリの手順に従いました

require('dotenv').config({path: `${__dirname}/../.env`})
//I asume this is right as the value get returned 
//but there does not say that i have to configure anything else
export const http = axios.create({
  baseURL: process.env.ROOT_API + 'api/',
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json',
    'Authorization': tokenType + ' ' + token
  }
})

process.env.ROOT_API値を文字列として返すことを期待していますがUncaught SyntaxError: Unexpected token :、値が次のように表示されている問題がどこにあるのかを確認すると、コンソールにエラーが表示されます

var http = __WEBPACK_IMPORTED_MODULE_5_axios___default.a.create({
  baseURL: http://localhost/project/public/ + 'api/',
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json',
    'Authorization': tokenType + ' ' + token
  }
});

私が試してみました

  • .envファイル内で異なる引用符を使用する
  • を文字列に変換するprocess.env.ROOT_APIか、値のタイプをログに記録しますが、値がSyntaxError: missing ) after argument listjsのプレーンテキストのように見えるため、エラーが発生します。
  • このようなテンプレート リテラルを使用し${process.env.ROOT_API}ます。show in console > sources '' + http://localhost/project/public/; //` 引用符を表示する方法がわかりません。コードのように表示されます。申し訳ありません。

コンソールにconsole.logあるものを確認するために実行すると、これが表示されますprocess.env

   ...
   PWD: 'C:/xampp/htdocs/project',
   ROOT_API: 'http://localhost/erp-api/public/',
   SESSIONNAME: 'Console',
   ...

どうすればこれを修正できますか? 値を文字列として取得しない理由がわかりませんか?

4

4 に答える 4

2

少し遅れています...しかし、私の解決策に従います。

  ...
  plugins: [
    new webpack.DefinePlugin({
    'process.env': JSON.stringify(dotenv.parsed)
  })

すべてを文字列に変換すると、ランダム エラーが発生しなくなります ;)

于 2020-11-19T05:11:35.477 に答える