我正在尝试用节点探测一个npm数据包。数据包是this,但是当我执行 node script.js 时,控制台上会出现以下错误。这就是我想要做的:
import { get } from 'http'
import { http } from 'get-headers'
get('http://example.com', (res) => {
http(res) //=> { 'Accept-Ranges': 'bytes', 'Cache-Control': 'max-age=604800', 'Content-Type': 'text/html', Date: 'Mon, 17 Aug 2015 19:53:03 GMT', Etag: '"359670651"', Expires: 'Mon, 24 Aug 2015 19:53:03 GMT', 'Last-Modified': 'Fri, 09 Aug 2013 23:54:35 GMT', Server: 'ECS (rhv/818F)', 'X-Cache': 'HIT', 'x-ec-custom-error': '1', 'Content-Length': '1270', Connection: 'close' }
})
错误如下:
(function (exports, require, module, __filename, __dirname) { import { get } from 'http';
^
SyntaxError: Unexpected token {
at new Script (vm.js:85:7)
at createScript (vm.js:266:10)
at Object.runInThisContext (vm.js:314:10)
at Module._compile (internal/modules/cjs/loader.js:698:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:749:10)
at Module.load (internal/modules/cjs/loader.js:630:32)
at tryModuleLoad (internal/modules/cjs/loader.js:570:12)
at Function.Module._load (internal/modules/cjs/loader.js:562:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:801:12)
at internal/main/run_main_module.js:21:11
我已经在node_modules目录中安装了这两个软件包,我认为错误是因为解释器不了解最新的ecmascript,因此我必须这样做,但是我已经安装了最新版本的节点。对可能发生的事情有任何想法吗?谢谢
node --version 10:43
v11.10.1
更新:我也尝试使用实验性标志来做到这一点,但会产生此错误。
错误
(node:12479) ExperimentalWarning: The ESM module loader is experimental.
/home/...:1
(function (exports, require, module, __filename, __dirname) { import { get } from 'http';
^
SyntaxError: Unexpected token {
at new Script (vm.js:85:7)
at createScript (vm.js:266:10)
at Proxy.runInThisContext (vm.js:314:10)
at Module._compile (internal/modules/cjs/loader.js:698:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:749:10)
at Module.load (internal/modules/cjs/loader.js:630:32)
at tryModuleLoad (internal/modules/cjs/loader.js:570:12)
at Function.Module._load (internal/modules/cjs/loader.js:562:3)
at createDynamicModule (internal/modules/esm/translators.js:78:15)
at Object.meta.done (internal/modules/esm/create_dynamic_module.js:40:9)
答案 0 :(得分:0)
您缺少在启用--experimental-modules
标志的情况下运行节点应用程序的信息。否则,import
对于节点是未知的,您可以在此处看到类似的答案https://stackoverflow.com/a/54384132/4229159