node环境常见问题

node运行环境常见问题

1. node环境不支持ES6的import解决

在我学习ES6的import语法的时候,在自己电脑的node环境下模拟运行import,发现node环境不支持import语法,报如下错误:

(function (exports, require, module, __filename, __dirname) { import pp from './a'
                                                              ^^^^^^
SyntaxError: Unexpected token import
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Module._compile (module.js:617:28)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)

我的node版本是v8.12.0,

在网络上查找资料发现:nodejs采用的是CommonJS的模块化规范,使用require引入模块;而import是ES6的模块化规范关键字。想要使用import,必须引入babel转义支持,通过babel进行编译,使其变成node的模块化代码。

由于我只是学习测试,不想这么麻烦,所以我发现了一个快捷的测试方法:

可以使用--experimental-modules实验模块标志来启用加载ECMAScript Modules的特性。
而且作为ES模块加载的文件名,必须以.mjs后缀结尾

node --experimental-modules my-app.mjs

# 此种方法,在输出的时候会出现如下提示,表示是个实验模块,到时候可能会修改。
(node:16208) ExperimentalWarning: The ESM module loader is experimental.

经过我的测试,这个node --experimental-modules是可以的,只不过测试文件后缀名要修改成.mjs

参考资料: https://www.cnblogs.com/weiqinl/p/9152219.html

2. node版本太高,导致gitbook报错

2021-04-04

由于使用新电脑,初次安装node后,再安装好gitbook-cli工具后,再命令行中执行gitbook命令报错:

gitbook build .
/usr/local/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs/polyfills.js:287
      if (cb) cb.apply(this, arguments)
                 ^

TypeError: cb.apply is not a function
    at /usr/local/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs/polyfills.js:287:18
    at FSReqCallback.oncomplete (fs.js:184:5)

经过搜索,看到一个相关解决文档:https://blog.csdn.net/weixin_42349568/article/details/108414441

发现这个是由于node版本太高导致。

我的node版本:

node -v
v14.16.0

需要使用n工具来切换工具:

npm install -g n
sudo n v10.21.0

经过把node版本切换到v10.21.0后,在执行gitbook命令发现没有问题了,问题得到解决。

相关推荐

  1. node环境常见问题

    2024-06-16 19:44:04       31 阅读
  2. node.js 常见命令

    2024-06-16 19:44:04       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-16 19:44:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-16 19:44:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-16 19:44:04       82 阅读
  4. Python语言-面向对象

    2024-06-16 19:44:04       91 阅读

热门阅读

  1. 【杂记-浅谈SNMP网络管理标准协议】

    2024-06-16 19:44:04       27 阅读
  2. Azure OpenAI 服务

    2024-06-16 19:44:04       30 阅读
  3. LeetCode 0521.最长特殊序列 Ⅰ:脑筋急转弯

    2024-06-16 19:44:04       38 阅读
  4. Qt进程间通信QLocalSocket客户端无法接收消息

    2024-06-16 19:44:04       31 阅读
  5. Eclipse 内容辅助

    2024-06-16 19:44:04       33 阅读
  6. Redis数据结构之字符串(sds)

    2024-06-16 19:44:04       31 阅读
  7. c语言中的宏是什么?

    2024-06-16 19:44:04       29 阅读
  8. 速盾:服务器遭受ddos攻击如何防御

    2024-06-16 19:44:04       32 阅读
  9. 堆排序(Heap_sort)

    2024-06-16 19:44:04       32 阅读
  10. stm32实战

    2024-06-16 19:44:04       31 阅读
  11. vue3:父组件如何给子组件传值

    2024-06-16 19:44:04       33 阅读
  12. leetcode 字符串

    2024-06-16 19:44:04       29 阅读