我已经安装了dotenv来设置用于开发和生产的环境变量,其中之一是ROOT_API
,我的env文件如下所示
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
转换为字符串或记录该值的类型,但由于该值在js中看起来像纯文本,因此出现错误SyntaxError: missing ) after argument list
。${process.env.ROOT_API}
这样的模板文字;在console > sources
'' + http://localhost/project/public/;
中显示
///我不知道如何显示`引号,就像对不起代码一样显示它。我做一个console.log
来查看process.env
在控制台中的内容,这就是它的显示内容
...
PWD: 'C:/xampp/htdocs/project',
ROOT_API: 'http://localhost/erp-api/public/',
SESSIONNAME: 'Console',
...
我该如何解决?我不明白为什么它不能以字符串形式获取值?
答案 0 :(得分:2)
我遇到了同样的问题,这就是我所做的:
如果您使用的是webpack.DefinePlugin()
,请改用webpack.EnvironmentPlugin()
,并使用dotenv.parsed
在其中获得Object.keys()
键,如下所示:
// webpack.config.js
const webpack = require('webpack')
const dotenv = require('dotenv').config()
module.exports = {
//...other configs
plugins: [
new webpack.EnvironmentPlugin(Object.keys(dotenv.parsed || {})),
]
]
答案 1 :(得分:1)
有点晚...但是遵循我的解决方法。
ID Invoice_Date Payment_Term Payment_Date Due_Date Delay Difference_Date Max
0 27459 2020-06-26 7 2020-07-05 2020-07-03 2 0 NaN
1 27459 2020-06-29 8 2020-07-05 2020-07-07 -2 3 2.0
2 27459 2020-06-30 3 2020-07-03 2020-07-03 0 1 2.0
3 27459 2020-07-14 6 2020-07-21 2020-07-20 1 14 2.0
4 27459 2020-07-25 4 2020-07-31 2020-07-29 2 11 2.0
5 27459 2020-07-30 7 2020-08-15 2020-08-06 9 5 2.0
6 27459 2020-08-02 8 2020-08-22 2020-08-10 12 3 9.0
7 48002 2020-05-13 5 2020-06-16 2020-05-18 29 0 NaN
8 48002 2020-06-20 3 2020-06-23 2020-06-23 0 38 NaN
9 48002 2020-06-28 6 2020-07-05 2020-07-04 1 8 0.0
将所有内容转换为字符串,不再出现随机错误;)
答案 2 :(得分:0)
您的代码应该可以正常运行。我认为它没有问题,我只是在没有webpack的情况下对其进行了验证。
如果
baseURL: process.env.ROOT_API + 'api/'
得到的翻译如下:
baseURL: http://localhost/project/public/ + 'api/',
表示您的翻译有问题。您应该在此处检查问题(或使用有关您的Webpack配置和用法的更多信息来更新问题)
答案 3 :(得分:0)
将此软件包安装为开发依赖项(https://www.npmjs.com/package/dotenv-webpack):
npm install --dev dotenv-webpack
或
yarn add -D dotenv-webpack
之后,只需将此代码添加到您的webpack文件中即可:
const Dotenv = require('dotenv-webpack');
module.exports = {
...
plugins: [
new Dotenv()
]
...
};