我是后端环境编码的新手,目前正在使用glitch.com编写代码。我有一个项目,正在尝试使用passport
注册用户和登录。我已经为passport实现了一个github策略,但在尝试将用户信息记录到数据库中时出现错误。基本上,将email: profile.email[0].value || 'no public email'
作为选项之一传递会在我尝试自己登录时给我一个空引用错误。所以我想做email: profile.email[0]?.value || 'no public email'
这样的事情
我已经尝试了几天,让这个与"@babel/plugin-proposal-optional-chaining": "^7.6.0"
工作,我试图避免npm
命令的时间,因为它有点难以遵循发生了什么,所以我试图安装我需要在packages.json
(虽然我没有尝试npm
命令以前,也不能工作)。
目前,我的依赖项中包含以下内容(我还尝试将内容移到devDependencies中):
"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-optional-chaining"]]},
(我也试过,里面没有任何选项)
那不起作用所以我加了一句
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
,但这也不起作用。根据文档,似乎至少有一次尝试应该起作用。有人能告诉我我做错了什么吗?
3条答案
按热度按时间rn0zuynd1#
所以我终于让它工作了。没有必要单独编译文件,老实说,我也很难让它那样工作。所以这里有一个列表,列出了我在尝试让它工作时发现的事情。
babel server.js --out-file script-compiled.js && node script-compiled.js
start
脚本非常适合于预编译所提供的主脚本文件。然而,我花了很长时间才让它工作起来。相反,我有一个原始的行,babel-node server.js
i就足够了。因为它是在运行时编译的,而不是创建一个输出文件,所以我不必担心协调它的依赖关系,这些依赖关系也需要编译,在运行时一次编译完。有两个原因导致它不起作用:1:我省略了
@babel/node
依赖项,而2:在我做研究的过程中,我发现Babel引擎本身什么都不做,而是依赖插件来编译它所需要的。我已经有了@babel/plugin-proposal-optional-chaining
依赖项,但仅此而已。显然有一个名为preset-env
的预设依赖项的完整库,它包含在依赖项@babel/preset-env
中,在包含依赖项之后,然后我必须将它包含在.babelrc
文件中,除了我实际上正在寻找的插件:w1e3prcc2#
这些更改应适用于
.babelrc
文件。然而,你并没有按照下面的命令运行babel传递的代码。
它应该看起来像下面的东西。
这里我只传递了一个文件给巴别塔
server.js
=〉script-compiled.js
您可以从documentation查看编译目录。
您可能需要确保使用模板的绝对路径,或者将模板复制到transpiled script文件夹可以访问的位置
nlejzf6q3#
在我的情况下,添加:
到
package.json
已解决的问题