javascript - Webpack nu poate rezolva importul pentru modulul ESM

Încerc să folosesc ESM cu TypeScript și Webpack într-un monorepo nx. După unele configurări, reușesc să transpil la ESM cu tsc. Pentru aceasta, a trebuit să adaug un ".js" la importurile relative.

import { AppModule } from './app/app.module.js';

Acum că încerc să folosesc webpack, se pare că nu detectează că este un ESM. Iată eroarea pe care o primesc:

ERROR in ./apps/nxnest/src/main.ts 9:0-48 Module not found: Error: Can't resolve './app/app.module

Citeste mai mult →

typescript - Nu se poate folosi declarația import în afara unui modul chiar și în ESM

Deci am o aplicație care se bazează pe o bibliotecă pe care am publicat-o pe NPM. Când import această bibliotecă într-o aplicație NextJs creată recent, apare următorul mesaj.

error - /Users/apple/testing-build/node_modules/foobar/dist/some-library.es.js:1 import t, { useState as M } from "react"; ^^^^^^ SyntaxError: Cannot use import statement outside a module at Object.compileFunction (node:vm:360:18) at wrapSafe (node:internal/modules/cjs/loader:1094:15)

Citeste mai mult →

javascript - Testul Jest TS care importă fișier ESM are ReferenceError la exports

Fișierele de test TypeScript funcționează perfect folosind transformarea ts-jest (Windows 11, jest 29.4.2, node 18.13.0) dacă nu import fișiere din aplicația mea.

Dar dacă import un fișier din aplicația mea (fișier ESM js compilat din sursa TypeScript), acesta eșuează cu eroarea: ReferenceError: exports is not defined pe linia de import:

import {Configuration} from "../server/ServerConfiguration.js"; describe("ServerConfiguration&q

Citeste mai mult →

javascript - cum să faci ca NestJS cu nx să funcționeze folosind ESM

acesta este un exemplu cu pure nestjs care funcționează bine https://github.com/robertIsaac/nest-esm

acesta este un exemplu cu nestjs cu nx care nu funcționează https://github.com/robertIsaac/nx-nest-esm

Am deschis deja un issue în nx https://github.com/nrwl/nx/issues/19618, a trecut o lună fără să-l rezolve și spun că mai sunt necesare câteva săptămâni și au oferit o soluție temporară care tot nu funcționează

cum să reproduceți

  1. creează un nou workspace nx folosin

    Citeste mai mult →

node.js - Migrarea unui workspace NX pentru a utiliza ESM

Am un monorepo mare bazat pe NX, jumătate de duzină de aplicații, frontend, backend, zeci de biblioteci. Totul este încă configurat să funcționeze cu tipuri de module commonjs, ceea ce generează mereu NX și a făcut-o dintotdeauna.

Totuși, tot mai multe biblioteci lansează versiuni „doar ESM”, care pur și simplu nu funcționează deloc pentru acest monorepo.

Tocmai am finalizat nx migrate latest, sunt pe NX 17, Typescript 5.2, Angular 17, dar commonjs pare să rămână unde este.

Citeste mai mult →

„Propunerea de integrare ESM pentru Wasm” nu este în prezent susținută în Vite ReactJS și Typescript

Folosesc ReactJS și Typescript cu Vite și vreau să obțin adresa din mnemonic. Am creat o funcție pentru asta, generateAddressFromMnemonic, care ia ca parametru un șir mnemonic, dar când trec `ecc`, care este importat din tiny-secp256k1 și aplic în BIP32Factory, primesc eroarea Vite „ESM integration proposal for Wasm” care nu este suportată în prezent în Vite React și Typescript, așa cum se arată în imaginea de mai jos. Apare când folosesc `const bip32=BIP32Factory(ecc)`. Am încercat să rezolv

Citeste mai mult →

typescript - Electron Forge + ESM

Am încercat să fac un proiect creat cu Electron Forge să funcționeze cu ESM.

În acest moment, ESM este în mare parte necesar, deoarece bibliotecile necesare exportă doar către ESM și utilizarea bibliotecilor mai vechi nu este acceptată. De asemenea, aș vrea să evit soluțiile improvizate, fork-urile și importurile ciudate (de exemplu import-sync) pentru a le face să fun

Citeste mai mult →

node.js - Cum să faci ca Jest să citească fișierul jest.config (nu fișierele spec) ca ESM?

Pot să rulez fișierele mele ESM .spec cu Jest. Întrebarea mea este despre încărcarea fișierului jest.config.ts propriu-zis (mai degrabă decât a fișierelor .spec.ts) ca ESM în loc de CommonJS.

Fișierul jest.config.ts importă un modul ESM, cum ar fi strip-json-comments (versiunile > 4.0 suportă doar ESM).

jest.config.ts:

import strip from 'strip-json-comments' export default function con

Citeste mai mult →

node.js - cum să imporți un esModule în nest?

import { Injectable, OnModuleInit } from '@nestjs/common'; @Injectable() export class PotatoService implements OnModuleInit { constructor() {} async onModuleInit(): Promise<void> { const chalk = (await import('chalk')).default; console.log(chalk.blue('potato service init')); } }

încerc să folosesc import(), dar primesc o eroare

node:internal/process/promises:289 triggerUncaughtException(err, true /* fromPromise */);

Citeste mai mult →

javascript - Jest: Token neașteptat 'export' cu o dependență care exportă ESM

Deși această problemă pare foarte simplu de rezolvat și cu unele postări care menționează o problemă similară, am urmat tot ce era posibil înainte de a veni aici să întreb. Această problemă încă persistă.

Eroarea pe care o întâlnesc

Am un monorepo TS cu câteva pachete, unul dintre ele fiind @repo/db-client. Îl import în backend-ul meu Node Fastify, unde am unele teste. De dragul simplității și pentru a arăta care este problema, să spunem

Citeste mai mult →