2020 年,JS 令一个新人沮丧

译者:方应杭 (杭州饥人谷教育科技有限公司 CTO)

来源:知乎

原文:https://zhuanlan.zhihu.com/p/143835487

本文是一篇译文,原文在 Hackers News 上的点数超过 200 点。

我的朋友是一位著名的计算机科学家,他之前没有用过 JS,今天他需要用到 GitHub 的一个 JS 库。而我在过去的 6 年主要的工作是在麻省理工学院进行可用性研究和教学,所以我其实也没什么把握。最终,我们俩出来搞出一堆错误之外一无所获,他也放弃了这个 JS 库。这篇文章我将试着为你道出他在这个过程中遇到的各种状况,以及心中的沮丧。

故事是这样的……(注意,库名和人名都经过了加工以避免隐私泄露,有些错误我直接忽略了,还有些错误我是凭记忆回忆的,所以如果我说错了,还请指出)

约翰:嘿,我在 GitHub 上找到了一个算法,介绍里说使用 import functionName from packageName 就可以调用 functionName(arguments) 来使用这个算法了,看起来很简单,看起来我只需要安装 Node 就可以搞定它了!

我:恩,Node 可以。

然后约翰运行了 npm install packageName --save,因为库的 README 里是这样说的。

接着,他运行了 node index.js

Node 报错:

Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension. SyntaxError: Cannot use import statement outside a module

约翰:哪来的** package.json** 啊……

我:运行 npm init 就会自动创建一个 package.json 哦

好吧,约翰运行了 npm init,并按照命令行的步骤依次进行设置,最后约翰在 package.json 里面加了一句 type: "module"。

接着,他再次运行了 node index.js

Node 报错:

SyntaxError: Cannot use import statement outside a module

约翰感到很奇怪,因为这个错误是这个 JS 库内部文件抛出来的。怎么会这样?

我:继续吧,这个报错应该没关系,你试试直接在浏览器里运行吧,不用 Node 了。这应该是一个 ES6 模块,它是一个算法,没有用到 Node 的 API,所以直接用浏览器就行。

约翰听从了我的建议,他创建了 index.html 文件,然后在里面添加了一行

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top