我是后端环境中编码的新手,我正在使用 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/