-1

我正在尝试将本地自定义 Nuxt 模块添加到我的 Nuxt 应用程序中,但我不断收到错误消息:

Cannot read property 'startsWith' of undefined                                                                                                

  at Resolver.g [as _require] (node_modules\jiti\dist\jiti.js:1:54052)
  at Resolver.requireModule (node_modules\@nuxt\core\dist\core.js:381:29)
  at ModuleContainer.addModule (node_modules\@nuxt\core\dist\core.js:182:38)
  at node_modules\@nuxt\utils\dist\utils.js:639:43
  at async ModuleContainer.ready (node_modules\@nuxt\core\dist\core.js:55:5)
  at async Nuxt._init (node_modules\@nuxt\core\dist\core.js:478:5)

我在 Nuxt 模块的 module.js 中需要如下所示的“路径”:

const { resolve, join } = require('path')
const { readdirSync } = require('fs')

它显示具有startsWith() 的文件列表。例如:

node_modules@nuxt\utils\dist\utils.js:

const startsWithAlias = aliasArray => str => aliasArray.some(c => str.startsWith(c));
...
const isWindows = process.platform.startsWith('win');
...
if (r.path && r.path.startsWith('/')) {
      routes.push(r.path);
    } else if (route !== '/' && route[route.length - 1] === '/') {
      routes.push(route.slice(0, -1));
    } else {
      routes.push(route);
    }
...
const sanitizedKey = key.startsWith('_') ? key.substr(1) : key;
...
if (key.startsWith('_') && key.length > 1) {
          route.path += '?';
        }
...
if (
    dir1 &&
    dir2 &&
    (
      dir1 === dir2 ||
      (
        dir1.startsWith(dir2) &&
        !path__default['default'].basename(dir1).startsWith(path__default['default'].basename(dir2))
      )
    )
  ) {
 ...
 if (key.startsWith('_')) {
    return `:${key.substr(1)}`
  }
 

4

1 回答 1

0

看起来它可能正在尝试初始化客户端上的模块,因此它无法识别特定于节点的代码。

如果您碰巧使用了nuxt-vitenuxt 2 的包,这可能就是为什么我认为vite-plugin-vue2它使用的包还不能与 SSR 一起使用。

* 我知道这可能是一种模糊和具体的奇怪组合,但是从这个问题开始,它看起来与我的队友在调查时遇到的问题非常相似nuxt-vite。此外,从堆栈跟踪来看,它甚至在正确进入模块之前就失败了。

于 2021-11-14T20:58:51.160 回答