Webpack 在升级到节点 v8(在 Ubuntu 16 上)后无法编译反应代码



node v7升级到node v8后,webpack无法编译我的react代码。

它说没有找到一些node_modules。注意:此问题不会在 Windows 上发生。

我尝试了几种方法,从刷新节点缓存和npm_modules到仔细检查$NODE_PATH,但仍然未能使其工作。看起来像是node v8webpack(或某些 ES6 语法(的兼容性问题。

暂时我恢复到node v7以使其工作。

有人遇到这个问题吗?

当您安装新的 Node 版本时,您需要确保使用该新版本安装要全局安装的所有模块(您需要在 PATH 中同时nodenpm,然后再在 PATH 中拥有任何其他版本的nodenpm,否则这可能无法按预期工作(。然后,您需要重建所有本地安装的模块(在某些情况下,您可能需要删除node_modules目录以确保所有内容都是从头开始构建的(。

当您从二进制包安装多个 Node 版本(使用二进制压缩包或 nvm 等(时,一个很常见的问题是,安装的npm具有通用的 shebang 行#!/usr/bin/env node,而不是像#!/opt/node-v8.0.0/bin/node这样的特定路径,如果您自己从源代码构建 Node,情况就是如此。

这意味着您有时会因使用使用错误版本的 Node 的全局路径运行npm而遇到麻烦,从而导致一些难以注意到的问题。

根据我的经验,问题最少的 Node 安装是从源代码构建它,安装在版本控制目录中,并在全局安装模块之前、本地 npm 安装之前以及运行您希望使用该特定 Node 版本的项目之前将其显式添加到 PATH。这样,您可以确保不使用任何可能从旧版本遗留下来的文件,就像在通用/usr/local前缀下安装一样。

您可以查看我的教程以获取更多详细信息和安装Node的其他选项:

  • https://gist.github.com/rsp/edf756a05b10f25ee305cc98a161876a

一般来说,你所描述的通常是由 Node 的安装冲突引起的。

最新更新