解决nextjs部署到now上之后出现的“Unable to import module 'now__launcher'”错误

Posted axel10

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决nextjs部署到now上之后出现的“Unable to import module 'now__launcher'”错误相关的知识,希望对你有一定的参考价值。

解决nextjs部署到now上之后出现的“Unable to import module ‘now__launcher‘”错误

这个错误是由于在next.config.js中直接引用了withLess之类的插件导致的。在now环境下require插件需要在PHASE_PRODUCTION_SERVER阶段下,如果不加这个阶段的判断就会报错。

这个是错误的做法

// ? Don‘t put this here

const withCSS = require(‘@zeit/next-css‘); // 由于不在PHASE_PRODUCTION_SERVER阶段所以报错

const { PHASE_PRODUCTION_SERVER } =

  process.env.NODE_ENV === ‘development‘

    ? {}

    : !process.env.NOW_REGION

      ? require(‘next/constants‘)

      : require(‘next-server/constants‘);

module.exports = (phase, { defaultConfig }) => {

  if (phase === PHASE_PRODUCTION_SERVER) {

    // Config used to run in production.

    return {};

  }

 

  return withCSS();

};

 

 

正确的写法:

const { PHASE_PRODUCTION_SERVER } =

  process.env.NODE_ENV === ‘development‘

    ? {}

    : !process.env.NOW_REGION

      ? require(‘next/constants‘)

      : require(‘next-server/constants‘);

module.exports = (phase, { defaultConfig }) => {

  if (phase === PHASE_PRODUCTION_SERVER) {

    // Config used to run in production.

    return {};

  }

 

  // ? Put the require call here.

  const withCSS = require(‘@zeit/next-css‘);

 

  return withCSS();

};

 

 

参考:https://github.com/zeit/next.js/issues/5750

 

以上是关于解决nextjs部署到now上之后出现的“Unable to import module 'now__launcher'”错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 Zeit Now 的 Next js + Express 部署问题

发生构建错误 ReferenceError: describe is not defined > 在 now.sh 部署期间

在 AWS 上使用 NextJS s-s-r 部署 React 应用程序的最便宜方法? [关闭]

NextJS / vercel - 504 错误'FUNCTION_INVOCATION_TIMEOUT'

项目 - RM 部署上centos7 之后出现的一些问题和解决方法

在 Heroku 上部署 nextjs 应用程序 - 错误状态 H20