首页 > 解决方案 > 无法在第 16 行静态分析 'require(..., ...)'

问题描述

我正在使用 nextjs。

在 nextjs 中导入markdown-toc时,我遇到了问题。 /pages/index.js

import toc from "markdown-toc";

然后我收到以下错误

./node_modules/markdown-toc/lib/utils.js
Cannot statically analyse 'require(…, …)' in line 16

标签: javascriptreactjsnext.js

解决方案


浏览lib代码时:

'use strict';

/**
 * Module dependencies
 */

var diacritics = require('diacritics-map');
var utils = require('lazy-cache')(require);
var fn = require;
require = utils;

/**
 * Lazily required module dependencies
 */

require('concat-stream', 'concat');

require被库utils分配覆盖(尽管这似乎是一个糟糕的主意)。

我不知道您使用的是什么捆绑器,但这可能是问题的根源,因为它试图require使用两个参数来评估它,而这是它无法做到的。

我会记录一个 Github 票证以使用另一个标识符,require而不是修复问题的根源。


推荐阅读