"node": "14.16.0",
"npm": "6.14.11"我有三个js文件,
dev.js
const keys = {
googleClientID: 'creds',
googleClientSecret: 'creds',
mongoURI: 'creds',
cookieKey: 'creds'
}
export { keys };prod.js
const pKeys = {
googleClientID: process.env.GOOGLE_CLIENT_ID,
googleClientSecret: process.env.GOOGLE_CLIENT_SECRET,
mongoURI: process.env.MONGO_URI,
cookieKey: process.env.COOKIE_KEY
}
export { pkeys };key.js
if(process.env.NODE_ENV === 'production'){
export { pKeys } from './prod.js'
} else{
export { keys } from './dev.js';
}当我这样做的时候,我得到了这个错误:
file:///home/vaibhav/Documents/email-app/email-server/config/key.js:2
export { pKeys } from './prod.js'
^^^^^^
SyntaxError: Unexpected token 'export'我哪里出问题了?因为根据这个MDN,如果您深入到示例和“导出自”,我做了同样的事情。如果我需要提供任何其他信息,请告诉我,因为我在javascrpt方面不是很强。同样在package.json内部,我设置了:
"type": "module"发布于 2021-05-27 05:54:27
您不能在node.js中使用if语句内部的导出,但是下面的代码应该能够完成您想要实现的任务:
import { keys as devKeys } from './dev.js';
import { pKeys as prodKeys } from './prod.js';
export const keys = process.env.NODE_ENV === 'production' ? null : devKeys;
export const pKeys = process.env.NODE_ENV === 'production' ? prodKeys : null;发布于 2021-05-27 05:14:32
根据我的理解,您正在从key.js重新导出密钥。
在key.js中试试这个:
import { pKeys as importedPKeys } from './prod.js'; // I think you had a typo for pKeys in prod.js export
import { keys as importedKeys } from './dev.js';
export let keys;
export let pKeys;
if(process.env.NODE_ENV === 'production'){
pKeys = importedPKeys;
} else{
keys = importedKeys;
}发布于 2021-05-27 05:33:06
好的,根据这条线,我学到的是,如果其他语句可能是,我不确定你不能在里面导出。但是,解决我的问题是在那里,它是用一种稍微不同的方式。
https://stackoverflow.com/questions/67715988
复制相似问题