javascript - 我无法让 Babel 可选链接运算符在故障中工作

标签 javascript backend babeljs

我是后端环境中编码的新手,我正在使用 glitch.com目前编写我的代码。我有一个project我正在尝试使用 passport 来注册用户和登录。我已经实现了护照的 github 策略,但在尝试在数据库中记录用户信息时遇到错误。基本上传递电子邮件:profile.email[0].value ||当我尝试自己登录时,“无公共(public)电子邮件”作为选项之一会给我一个空引用错误。在分析 profile 对象时,我发现它缺少 email 字段,因此我想要执行类似 email: profile.email[0]? 的操作。值|| “没有公共(public)电子邮件”

我已经尝试了几天让它与 "@babel/plugin-proposal-optional-chaining": "^7.6.0"我试图避免暂时使用 npm 命令,因为跟踪正在发生的事情有点困难,所以我尝试在 packages.json 中安装我需要的东西(尽管我确实尝试过npm 命令之前也无法工作)。

目前我的依赖项中有以下内容(我也尝试将内容移至 devDependency 中):

"babel-cli": "^6.26.0",
"babel-preset-es2015": "^6.24.1",
"babel-preset-stage-2": "^6.24.1",
"babel-register": "^6.26.0",
"@babel/plugin-proposal-optional-chaining": "^7.6.0",
"@babel/core": "^7.6.0"

我在 packages.json 中还有以下内容: "babel": {"plugins": [["@babel/core"], ["@babel/plugin-proposal -可选链接“]]},(我也尝试过,但没有任何选项)

这不起作用,所以我添加了

require("@babel/core").transform("code", {
  plugins: [["@babel/core"], ["@babel/plugin-proposal-optional-chaining"]]
});

auth.js 文件(我尝试在其中实现运算符的文件)。我也在没有 @babel/core 插件的情况下尝试过。当这不起作用时,我决定尝试使用以下代码添加 .babelrc:

{
  "plugins": [["@babel/core"], ["@babel/plugin-proposal-optional-chaining"]]
}

这不起作用,所以我想也许我需要将其更改为 .babelrc.json 但这也不起作用。根据文档,这些尝试中至少有一项应该是有效的。有人可以告诉我我做错了什么吗?

最佳答案

所以我终于成功了。没有必要独立编译文件,老实说,无论如何我都很难让它以这种方式工作。因此,这里列出了我在尝试使其发挥作用时发现的一些事项。

babel server.js --out-file script-compiled.js && node script-compiled.js start script 非常适合预编译所服务的主脚本文件。还有其他.js文件server.js取决于;然而,我很难让它发挥作用。相反,我原来的行 babel-node server.js我足够了。因为它在运行时编译而不是创建输出文件,所以我不必担心协调它的依赖项,这些依赖项也需要编译,它在运行时立即编译。

它不起作用有两个原因:1:我省略了 @babel/node依赖,2:在我研究的过程中,发现babel引擎本身不做任何事情,而是依赖插件来编译它需要的东西。我已经有了@babel/plugin-proposal-optional-chaining依赖,但仅此而已。显然有一个完整的预设依赖项库,名为 preset-env包含在依赖项 @babel/preset-env 中,在包含依赖项后,我必须将其包含在 .babelrc 中文件,除了我实际上正在寻找的插件之外:

{
  "plugins": ["@babel/plugin-proposal-optional-chaining"],
  "presets": ["@babel/env"]
}

关于javascript - 我无法让 Babel 可选链接运算符在故障中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58666778/

相关文章:

javascript - 选择不溢出宽度的多行文本

security - 如何安全转移

mongodb - 使用 Heroku 时解析服务器版本太低

reactjs - 找不到模块 '@babel/plugin-transform-runtime' 从

javascript - 捆绑失败 : Error: Cannot find module 'babel-preset-react-native' from '/workspace/reactnative' '

javascript - 从 JavaScript 检索 post 请求并将其与 cURL/RCurl 一起使用

javascript - Trigger.io:函数中的 forge.prefs 变量作用域

javascript - ReactJS:如何动态呈现行

javascript - 我想编写一个异步 JSON 联系人,它将覆盖我的 data.json 文件的内容

javascript - 如何在后端和前端具有不同子文件夹的codesandbox中运行应用程序