Î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 →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 →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 →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
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 →
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 →
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 →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 →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 →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ă.
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 →