首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在NestJS中安装纳米线

如何在NestJS中安装纳米线
EN

Stack Overflow用户
提问于 2022-08-01 10:54:12
回答 1查看 666关注 0票数 0

我尝试将纳米体导入到NestJS中,并得到了以下错误:

错误ERR_REQUIRE_ESM:要求ES模块的(). ..。相反,更改index.js的要求。到在所有CommonJS模块中可用的动态导入()。

进口代码是:

代码语言:javascript
复制
import { Injectable } from '@nestjs/common';
import { nanoid } from 'nanoid';   //wont import, gives error
import { User } from './data-objects/user.object';

我还尝试了修改进口声明:

代码语言:javascript
复制
// I tried this alternative
import * as nanoid from 'nanoid';

// Also tried this
const nanoid = require ( 'nanoid' );

什么都没用。

为什么会发生这个错误,我应该如何在NestJS中安装纳米棒呢?

EN

回答 1

Stack Overflow用户

发布于 2022-08-01 10:54:12

通过简单的搜索,我无法找到我的问题的直接答案,只有在对纳米github问题#365进行了一些研究之后,我才找到了答案。

关于这个问题的一些背景

  • 2022年6月8日,纳米版4.0.0被发布,并发生了重大变化。
  • 它有一个新特性,现在它只支持ESM应用程序。
  • 这使得它与使用CommonJS的应用程序不兼容。链接到更改日志..。
  • nanoid支持团队承诺继续根据需要支持Ver.3.x.x,直到nodejs & nestjs中的EMS得到支持为止。

直到NestJS支持ESM的某一天到来,您将不得不使用纳米版本3.x.x。

如何修复

  • 首先卸载纳米版本4.x.x:npm uninstall nanoid
  • 然后安装ne版本和其他任何未来的3.x.x:npm install nanoid@^3.0.0

我的解决方案的来源来自github问题@ayushsharma82 82中的一条评论。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73192655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档