【问题标题】:SyntaxError: Unexpected token 'export' error in node jsSyntaxError:节点 js 中出现意外的令牌“导出”错误
【发布时间】:2023-03-28 21:56:02
【问题描述】:
"node": "14.16.0",
"npm": "6.14.11"

我有 3 个 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'

我哪里错了?因为根据这个doc by MDN,如果你深入示例并“导出”我做了同样的事情。 如果我需要提供任何其他信息,请告诉我,因为我对 javascrpt 不是很擅长。 我也在 package.json 中设置了:

"type": "module"

【问题讨论】:

    标签: javascript ecmascript-6 module


    【解决方案1】:

    您不能在 node.js 中的 if 语句中使用 export,但以下代码应该可以达到您的目的:

        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;
    

    【讨论】:

    • 是的,我给出了相同的解决方案。我意识到如果 else 语句不能从内部导出任何内容
    • 如果您将此答案标记为这种情况下的解决方案,我们将不胜感激。谢谢你:)
    【解决方案2】:

    好的,根据this thread,我了解到的是,如果 else 语句可能是,我不确定,你不能在里面导出。但是我的问题的解决方案就在那里,并且以稍微不同的方式完成。

    【讨论】:

      【解决方案3】:

      据我了解,您是从 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;
      }
      

      【讨论】:

      • 我做了,现在得到这个错误 export { pKeys }; SyntaxError:意外的令牌“导出”
      • 您使用的是哪个版本的节点?
      猜你喜欢
      • 2017-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-18
      • 2021-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多