接下来无法加载 SWC 二进制文件
Next failed to load SWC binary
当尝试 运行 使用 nextjs npm 运行 命令时,dev 显示错误 - 无法加载 SWC 二进制文件,请在此处查看更多信息:https://nextjs.org/docs/messages/failed-loading-swc.
我已经尝试卸载 node 并使用版本 16.13 重新安装它,但没有成功,在 vercel 页面上,但到目前为止没有成功。有什么建议吗?
此外,我注意到这是 NextJS 讨论的当前问题 page and it has to do with the new Rust-base compiler,它比 Babel 更快。
这在 nextJS 文档中作为 suggeted 工作,但它带走了 Rust 编译器及其所有好处...这是我为那些最终陷入困境的人所做的...
第 1 步。添加此行或编辑 next.json.js
{
swcMinify: false // it should be false by default
}
第 2 步。将“.babelrc”文件添加到项目根目录
第 3 步。将此代码段添加到新文件“.babelrc”
{
"presets": ["next/babel"]
}
第 4 步,您需要 运行 此命令,因为第 1-3 步将删除 SWC 加载失败错误,但是当您 运行 构建命令时,您会注意到另一个错误。所以运行这也是
npm install next@canary
希望这对您有所帮助
我在 Windows 11 上遇到了同样的问题。我将 NodeJS 升级到 17.0.1。之后,一切正常。
我是 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"
如果您遇到任何其他问题,请告诉我。
在根目录下制作.babelrc。并添加以下代码。
{ "presets": ["next/babel"], "plugins": [["styled-components", { "ssr": true }]] }
我有同样的问题,只是使用 mac/window 终端而不是 VScode 集成终端
只需 运行 'npm i' 或 'yarn' 然后重新启动服务器。
这个错误是因为 next js 使用基于 Rust 的编译器来编译 JavaScript 这比 babel 快得多但是这不兼容所有系统架构,在其他情况下你必须禁用它来解决这个问题编译器并使用原生的 babel 编译器。这是通过在您的根目录中创建一个 .babelrc 文件并将下面的代码添加到文件中来完成的;
{"presets": ["next/babel"]}
您可以查看此 link 了解更多详情:SWC Failed to Load - NEXTJS DOCS
如果您使用 Docker,只需将 RUN npm install -D @swc/cli @swc/core
添加到 Docker 文件。
删除项目中的 package-lock.json
文件和 node_modules
目录,然后在终端上删除 运行 npm install
。
我用的是 MacBook m1。 Joon Kyoung 的回答对我有用-> 删除项目中的 package-lock.json 文件和 node_modules 目录,然后在终端上 运行 npm install。
发生这种情况是因为您在项目中卸载了 npm 模块或 yarn
只需 运行 这个命令/安装节点包,你就会得到回报
如果您 运行 正在使用 Docker,我必须使用 node:14-buster-slim
作为基础图像才能使其正常工作。我从 https://github.com/vercel/next.js/discussions/30468#discussioncomment-1598941.
得到了我的工作解决方案的想法
我的 multi-staged Docker 文件如下所示:
############### 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
用于 运行 您的服务,运行 宁 next dev
的 docker-compose.yaml
文件将如下所示:
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"
删除 node_modules
目录和 package-lock.json
运行 npm i
安装依赖项
如果你在 MAC OS,你可以直接在终端运行下面的命令
rm -rf node_modules && rm package-lock.json && npm i
在您的 NextJS 项目中,您有这个名为 .eslintrc.json 的文件,在这个文件中
您有以下代码
{
"extends": "next/core-web-vitals"
}
Replace it with
{
"extends": ["next/babel","next/core-web-vitals"]
}
如果您阅读了文档 (170https://nextjs.org/docs/messages/failed-loading-swc),它说您需要一个我在 https://docs.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist?view=msvc- 下载的可分发文件,这对我有用
只需下载 Redistributable C++ 2015
在 Windows 上解决此问题的最佳方法是安装“Microsoft Visual C++ Redistributable”
发生错误是因为 Next.js 正在使用 Rust-based 编译器 SWC 编译 JavaScript/TypeScript,为此 SWC 需要下载与您的系统特定兼容的二进制文件。
解决这个问题:
Just go to Microsoft Visual C++ Redistributable to download
latest supported Microsoft Visual C++ Redistributable.
或者,您可以直接从这里下载(请先检查您的版本)
Permalink for latest supported x64 version
The X64 Redistributable package contains both ARM64 and X64 binaries. This package makes it easy to install required Visual C++ ARM64 binaries when the X64 Redistributable is installed on an ARM64 device.
当尝试 运行 使用 nextjs npm 运行 命令时,dev 显示错误 - 无法加载 SWC 二进制文件,请在此处查看更多信息:https://nextjs.org/docs/messages/failed-loading-swc.
我已经尝试卸载 node 并使用版本 16.13 重新安装它,但没有成功,在 vercel 页面上,但到目前为止没有成功。有什么建议吗?
此外,我注意到这是 NextJS 讨论的当前问题 page and it has to do with the new Rust-base compiler,它比 Babel 更快。
这在 nextJS 文档中作为 suggeted 工作,但它带走了 Rust 编译器及其所有好处...这是我为那些最终陷入困境的人所做的...
第 1 步。添加此行或编辑 next.json.js
{
swcMinify: false // it should be false by default
}
第 2 步。将“.babelrc”文件添加到项目根目录
第 3 步。将此代码段添加到新文件“.babelrc”
{
"presets": ["next/babel"]
}
第 4 步,您需要 运行 此命令,因为第 1-3 步将删除 SWC 加载失败错误,但是当您 运行 构建命令时,您会注意到另一个错误。所以运行这也是
npm install next@canary
希望这对您有所帮助
我在 Windows 11 上遇到了同样的问题。我将 NodeJS 升级到 17.0.1。之后,一切正常。
我是 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"
如果您遇到任何其他问题,请告诉我。
在根目录下制作.babelrc。并添加以下代码。
{ "presets": ["next/babel"], "plugins": [["styled-components", { "ssr": true }]] }
我有同样的问题,只是使用 mac/window 终端而不是 VScode 集成终端
只需 运行 'npm i' 或 'yarn' 然后重新启动服务器。
这个错误是因为 next js 使用基于 Rust 的编译器来编译 JavaScript 这比 babel 快得多但是这不兼容所有系统架构,在其他情况下你必须禁用它来解决这个问题编译器并使用原生的 babel 编译器。这是通过在您的根目录中创建一个 .babelrc 文件并将下面的代码添加到文件中来完成的;
{"presets": ["next/babel"]}
您可以查看此 link 了解更多详情:SWC Failed to Load - NEXTJS DOCS
如果您使用 Docker,只需将 RUN npm install -D @swc/cli @swc/core
添加到 Docker 文件。
删除项目中的 package-lock.json
文件和 node_modules
目录,然后在终端上删除 运行 npm install
。
我用的是 MacBook m1。 Joon Kyoung 的回答对我有用-> 删除项目中的 package-lock.json 文件和 node_modules 目录,然后在终端上 运行 npm install。
发生这种情况是因为您在项目中卸载了 npm 模块或 yarn 只需 运行 这个命令/安装节点包,你就会得到回报
如果您 运行 正在使用 Docker,我必须使用 node:14-buster-slim
作为基础图像才能使其正常工作。我从 https://github.com/vercel/next.js/discussions/30468#discussioncomment-1598941.
我的 multi-staged Docker 文件如下所示:
############### 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
用于 运行 您的服务,运行 宁 next dev
的 docker-compose.yaml
文件将如下所示:
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"
删除 node_modules
目录和 package-lock.json
运行 npm i
安装依赖项
如果你在 MAC OS,你可以直接在终端运行下面的命令
rm -rf node_modules && rm package-lock.json && npm i
在您的 NextJS 项目中,您有这个名为 .eslintrc.json 的文件,在这个文件中
您有以下代码
{
"extends": "next/core-web-vitals"
}
Replace it with
{
"extends": ["next/babel","next/core-web-vitals"]
}
如果您阅读了文档 (170https://nextjs.org/docs/messages/failed-loading-swc),它说您需要一个我在 https://docs.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist?view=msvc- 下载的可分发文件,这对我有用
只需下载 Redistributable C++ 2015
在 Windows 上解决此问题的最佳方法是安装“Microsoft Visual C++ Redistributable”
发生错误是因为 Next.js 正在使用 Rust-based 编译器 SWC 编译 JavaScript/TypeScript,为此 SWC 需要下载与您的系统特定兼容的二进制文件。
解决这个问题:
Just go to Microsoft Visual C++ Redistributable to download latest supported Microsoft Visual C++ Redistributable.
或者,您可以直接从这里下载(请先检查您的版本)
Permalink for latest supported x64 version
The X64 Redistributable package contains both ARM64 and X64 binaries. This package makes it easy to install required Visual C++ ARM64 binaries when the X64 Redistributable is installed on an ARM64 device.