尝试将我的“aws-amplify”包导入我的入口点时收到 JSLint 错误
Posted
技术标签:
【中文标题】尝试将我的“aws-amplify”包导入我的入口点时收到 JSLint 错误【英文标题】:Receiving a JSLint error from trying to import my 'aws-amplify' package into my entry point 【发布时间】:2021-03-14 17:12:12 【问题描述】:最新版本的 aws-amplify 是使用 npm 安装的。此外,npm init 是在入口点文件为“entryPoint.js”的情况下运行的。但是,当我输入 entryPoint.js 并将这些代码行粘贴到顶部时
import Amplify, Auth from 'aws-amplify';
import awsconfig from './aws-exports';
Amplify.configure(awsconfig);
我收到一个 JSLint 错误,内容如下:
Expected an identifier and instead saw 'import'.
如何正确导入 aws-amplify?我按照https://docs.amplify.aws/lib/auth/getting-started/q/platform/js#option-1-use-pre-built-ui-components的说明进行操作
【问题讨论】:
【参考方案1】:所以 JSLint 对整个 import
游戏和 instructions themselves say this about import
来说有点新:
JSLint 识别模块语法的一个小而重要的子集。
很长一段时间,JSLint (iirc) 根本不支持import
,然后有一段时间可能只支持es6
jslint 指令,但这是凭记忆的。我很高兴看到它支持的功能和现在一样多。
看起来“小而重要的子集”不支持的默认 import
与 named import
在同一行。
但它确实接受像这样将导入分成两行:
import Auth from "aws-amplify";
import Amplify from "aws-amplify";
import awsconfig from "./aws-exports";
Amplify.configure(awsconfig);
// you didn't use Auth, so let's use it here in a
// way that stops JSLint from complaining.
var myAuth = new Auth("something");
myAuth.something(1);
JSLint 在使代码易于扫描和阅读方面非常重要。也许您的想法是您不希望这两种类型在同一行 b/c 上,也许您会将Amplify
读作命名导入?在这种情况下我不知道具体情况。
但是 JSLint 是一个很好的工具,可以帮助确保高质量的 javascript 代码。如果你能克服它的特性,比如这个,它会长期回报你,尽管许多人会建议你应该考虑使用“现代”JavaScript 代码 eslint。它的可配置性更高一些,这本身就是一把双刃剑。
【讨论】:
嗨!谢谢你的建议。我拆分了代码中的行,这个问题似乎解决了,或者至少不是致命的。我现在遇到的一个问题是无法解析模块说明符;他们似乎想要括号中的任何内容以“/”或“./”或“../”开头。这不在演练中,所以我很谨慎地改变它,你知道可能是什么原因造成的吗? @joiep 如果将导入作为书面形式与 JSLint 一起使用,那可能是一个新问题。代码是什么?他们是谁”? ;^D JSLint 在抱怨吗?我认为不应该;我在 jslint.com 上的 lints 上面有什么。这是npm 的问题吗?也就是说,你怎么能确定这些库是在上下文中的?等等。但这可能是一个新问题,除非它是 JSLint 问题,否则需要一个好的 plunkr 才能真正诊断。以上是关于尝试将我的“aws-amplify”包导入我的入口点时收到 JSLint 错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 Pyinstaller 时找不到隐藏的导入 Tensorflow 包
AWS Amplify 错误从 aws-amplify 导入 StorageProvider 类