9

尝试使用 nextjs npm run dev 运行命令时显示错误 - 无法加载 SWC 二进制文件,请在此处查看更多信息:https ://nextjs.org/docs/messages/failed-loading-swc 。

我尝试在 vercel 页面上卸载节点并使用 16.13 版再次重新安装,但没有成功,但到目前为止没有成功。有小费吗?

另外,我注意到这是 NextJS 讨论页面上的一个当前问题,它与新的基于 Rust 的编译器有关,它比 Babel 更快。

4

14 回答 14

20

删除项目中的package-lock.json文件和node_modules目录,然后npm install在终端上运行。

于 2021-12-15T08:33:24.603 回答
9

这按照nextJS文档的建议工作,但它带走了 Rust 编译器及其所有好处......这是我为那些最终陷入困境的人所做的......

步骤 1. 添加此行或编辑 next.json.js

{
swcMinify: false // it should be false by default 
}

步骤 2. 将“.babelrc”文件添加到项目根目录

步骤 3. 将此代码段添加到新文件“.babelrc”中

{
"presets": ["next/babel"]
}

第 4 步,您需要运行此命令,因为第 1-3 步将删除 SWC failed to load 错误,但是当您运行 build 命令时,您会注意到另一个错误。所以也运行这个

npm install next@canary

希望这可以帮助

于 2021-11-03T06:46:26.347 回答
3

只需运行“npm i”或“yarn”,然后重新启动服务器。

于 2021-12-01T08:35:23.727 回答
3

如果您使用 Docker,只需添加RUN npm install -D @swc/cli @swc/core到 Dockerfile。

于 2021-12-06T18:50:49.193 回答
2

我有同样的问题,只使用 mac/window 终端而不是 VScode 集成终端

于 2021-11-20T08:03:31.957 回答
1

在根目录中制作 .babelrc。并添加以下代码。 { "presets": ["next/babel"], "plugins": [["styled-components", { "ssr": true }]] }

于 2021-11-17T09:10:21.197 回答
1

我用的是 MacBook m1。Joon Kyoung 的回答对我有用-> 删除项目中的 package-lock.json 文件和 node_modules 目录,然后在终端上运行 npm install 。

于 2022-01-12T10:44:40.953 回答
0

这是因为您在项目中卸载了 npm 模块或纱线,只需运行此命令/安装节点包,您就会得到回报

于 2022-01-27T22:33:57.963 回答
0

如果您使用 Docker 运行,我必须使用node:14-buster-slim它作为我的基本映像才能使其工作。我从https://github.com/vercel/next.js/discussions/30468#discussioncomment-1598941得到了我的工作解决方案的想法。

我的多阶段 Dockerfile 如下所示:


############### Base Image ###############
FROM node:14-buster-slim AS base
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .

############### Build Image ###############
FROM base AS build

ARG app_env=production
ARG app_port=3000

WORKDIR /build
COPY --from=base /app ./

ENV NODE_ENV=${app_env}
ENV PORT=${app_port}
EXPOSE ${app_port}

RUN npm run build

############### Deploy Image ###############
FROM node:14.18.1-alpine AS production

ARG app_env=production
ENV NODE_ENV=${app_env}
WORKDIR /app
COPY --from=build /build/package*.json ./
COPY --from=build /build/.next ./.next
COPY --from=build /build/public ./public
RUN npm install next

EXPOSE 3000
CMD npm run start

如果你想用它docker-compose来运行你的服务,docker-compose.yaml运行的文件next dev看起来像这样:

version: "3"

services:
  web-server:
    env_file:
      - ./.env
    build:
      context: .
      dockerfile: Dockerfile
      target: base
    command: npm run dev
    container_name: web-server
    restart: always
    volumes:
      - ./:/app
      - /app/node_modules
    ports:
      - "${NODEJS_PORT}:3000"
于 2022-02-28T20:24:45.263 回答
0

我是 next.js 的初学者,我遇到了同样的错误。经过搜索,我得到了添加 .babelrc 的解决方案。但是使用它无法获得SWC的功能。

今天我得到了一个真正的解决方案,使用这个示例项目命令。当我们创建新项目时,swc 将正常工作,并且不会出现错误。

command- npx create-next-app 'your_project_name' --use-npm --example "https://github.com/vercel/next-learn/tree/master/basics/learn-starter"

如果您遇到任何进一步的问题,请告诉我。

于 2021-11-05T07:00:02.627 回答
0

创建一个文件 .babelrc 并添加以下代码:

  {
  "presets": ["next/babel"]
    }
于 2022-02-08T13:13:00.787 回答
0

出现此错误是因为 next js 使用基于 Rust 的编译器来编译 JavaScript,它比 babel 快得多,但这与所有系统架构不兼容,除此之外,您必须禁用此编译器并使用本机 babel 编译器。这是通过在你的根目录中创建一个 .babelrc 文件并将下面的代码添加到文件中来完成的;

{"presets": ["next/babel"]}

您可以查看此链接以获取更多详细信息:SWC 无法加载 - NEXTJS DOCS

于 2021-12-05T00:38:48.423 回答
0

我在 Windows 11 上遇到了同样的问题。我将 NodeJS 升级到 17.0.1。之后,现在一切正常。

于 2021-11-03T17:50:42.517 回答
-3

这对我有用

使用终端或 CMD 执行 git 操作。

如果您无法使用npm i解决此问题,您可以尝试使用系统终端执行 git 操作。

于 2022-02-02T12:23:30.993 回答