zoukankan      html  css  js  c++  java
  • 解决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

  • 相关阅读:
    SpringBoot(十二)------国际化配置
    SpringBoot(十一) ----SpringBoot结合mybatis实现增删改查
    SpringBoot(十)----SpringMVC自动配置&扩展配置
    SpringBoot学习(九) ------访问静态web资源
    leetcode-----两数相加
    JDBC — 学习大纲
    网络编程
    StringBuffer
    代理
    加载文件的两种方式
  • 原文地址:https://www.cnblogs.com/axel10/p/10260086.html
Copyright © 2011-2022 走看看