ค้นหาเว็บไซต์

typescript - ไม่สามารถใช้คำสั่ง import นอกโมดูลได้แม้ใน ESM

ดังนั้นฉันมีแอปพลิเคชันที่พึ่งพาไลบรารีซึ่งเราได้เผยแพร่บน NPM เมื่อทำการนำเข้าไลบรารีนี้ในแอปพลิเคชัน NextJs ที่สร้างขึ้นใหม่ มันจะแสดงข้อผิดพลาดดังต่อไปนี้

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) at Module._compi

อ่านต่อไป →

javascript - การทดสอบ Jest TS ที่นำเข้าไฟล์ ESM มี ReferenceError เกี่ยวกับ exports

ไฟล์ทดสอบ Typescript ทำงานได้อย่างสมบูรณ์โดยใช้การแปลง ts-jest (Windows 11, jest 29.4.2, node 18.13.0) หากฉันไม่ทำการนำเข้าไฟล์จากแอปพลิเคชันของฉัน

แต่ถ้าฉันนำเข้าไฟล์จากแอปพลิเคชันของฉัน (ไฟล์ ESM js ที่คอมไพล์มาจากซอร์ส TypeScript) จะเกิดข้อผิดพลาดพร้อมข้อความ: ReferenceError: exports is not defined บรรทัดการนำเข้าดังนี้:

import {Configuration} from "../server/ServerConfiguration.js"; describe("ServerConfiguration", () =>

อ่านต่อไป →

javascript - วิธีทำให้ NestJS กับ nx ทำงานโดยใช้ ESM

นี่คือตัวอย่างกับ NestJS บริสุทธิ์ที่ทำงานได้ดี https://github.com/robertIsaac/nest-esm

นี่คือตัวอย่างกับ nestjs กับ nx ที่ไม่ทำงาน https://github.com/robertIsaac/nx-nest-esm

ฉันได้เปิดปัญหาใน nx แล้ว https://github.com/nrwl/nx/issues/19618 ผ่านมาเป็นเดือนแล้วแต่พวกเขายังไม่ได้แก้ไขและบอกว่าต้องใช้เวลาหลายสัปดาห์ และให้วิธีแก้ชั่วคราวที่ก็ยังใช้ไม่ได้อยู่

วิธีการสืบพันธุ์

  1. สร้าง workspace ของ nx ใหม่โดยใช้ npx create-nx-workspace@latest
  2. เพิ่ม

    อ่านต่อไป →

node.js - การย้ายที่ทำงาน NX ไปใช้ ESM

ฉันมีมอนอเรโปขนาดใหญ่ที่ใช้ NX ครึ่งโหลแอป ทั้ง frontend และ backend หลายสิบไลบรารี ทั้งหมดยังคงตั้งค่าให้ทำงานกับประเภทโมดูล commonjs ซึ่งเป็นสิ่งที่ตัวสร้างของ NX สร้างขึ้นเสมอ และยังคงสร้างอยู่

อย่างไรก็ตาม ห้องสมุดมากขึ้นเรื่อย ๆ ปล่อยเวอร์ชัน "ESM only" ซึ่งตรง ๆ แล้วไม่สามารถทำงานได้เลยสำหรับมอนอรีโปนี้

ฉันเพิ่งทำการ nx migrate latest เสร็จ, ใช้ NX 17, Typescript 5.2, Angular 17, แต่ commonjs ก็ดูเหมือนจะยังอยู่เหมือนเดิม

การพยายามอัปเกรดด้วยตนเองทั้งหมดล้มเหลว ทุกครั้

อ่านต่อไป →

ข้อเสนอการรวม ESM สำหรับ Wasm ยังไม่ได้รับการสนับสนุนในปัจจุบันใน Vite ReactJS และ Typescript

ฉันกำลังใช้ ReactJS และ Typescript ร่วมกับ Vite และต้องการดึงที่อยู่จาก mnemonic ฉันสร้างฟังก์ชันสำหรับสิ่งนี้ชื่อ generateAddressFromMnomic ซึ่งรับสตริง mnemonic เป็นพารามิเตอร์ แต่เมื่อฉันส่ง ecc ซึ่งถูกนำเข้าจาก tiny-secp256k1 และใช้กับ BIP32Factory ฉันได้รับข้อผิดพลาดของ Vite ว่า "ESM integration proposal for Wasm" ไม่สามารถรองรับได้ในปัจจุบันใน vite react และ typescript ซึ่งปรากฏดังภาพด้านล่าง ข้อผิดพลาดนี้เกิดขึ้นเมื่อฉันใช้ const bip32=BIP32Factory(ecc) ฉันได้แก้ปัญหานี้ด้วยก

อ่านต่อไป →

ไทป์สคริปต์ - Electron Forge + ESM

ฉันพยายามทำให้โปรเจกต์ที่สร้างด้วย Electron Forge ทำงานกับ ESM

ในตอนนี้ ESM เป็นสิ่งที่จำเป็นส่วนใหญ่ เนื่องจากไลบรารีที่จำเป็นกำลังส่งออกเฉพาะไปยัง ESM และการใช้ไลบรารีเก่าไม่เป็นที่ยอมรับ นอกจากนี้ ฉันยังอยากหลีกเลี่ยงการใช้แฮ็ก การโคลน และการนำเข้าแปลก ๆ (เช่น import-sync) เพื่อให้มันทำงานใน CommonJS

ดังนั้นสถานะปัจจุบันควรจะเป็นว่า Electron รองรับ ESM ตั้งแต่

อ่านต่อไป →

node.js - วิธีทำให้ Jest อ่านไฟล์ jest.config (ไม่ใช่ไฟล์สเปก) เป็น ESM?

ฉันสามารถรันไฟล์ ESM .spec ของฉันด้วย Jest คำถามของฉันเกี่ยวกับการโหลดไฟล์ jest.config.ts เอง (แทนที่จะเป็นไฟล์ .spec.ts) เป็น ESM แทน CommonJS

ไฟล์ jest.config.ts นำเข้าโมดูล ESM เช่น strip-json-comments (เวอร์ชัน > 4.0 รองรับเฉพาะ ESM)

jest.config.ts:

import strip from 'strip-json-comments' export default function config(){ // call the esm function strip(...); }

น

อ่านต่อไป →

node.js - วิธีนำเข้า esModule ใน 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')); } }

ฉันพยายามใช้ import() แต่เกิดข้อผิดพลาด

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

อ่านต่อไป →

javascript - Jest: โทเค็นที่ไม่คาดคิด 'export' กับการพึ่งพาที่ส่งออก ESM

แม้ว่าปัญหานี้ดูเหมือนง่ายมากที่จะซ่อมแซม และมีโพสต์บางส่วนที่กล่าวถึงปัญหาที่คล้ายกัน ฉันได้ทำทุกอย่างที่เป็นไปได้ก่อนมาที่นี่เพื่อถาม แต่ปัญหานี้ยังคงอยู่

ข้อผิดพลาดที่ฉันพบ

ฉันมี TS monorepo ที่มีแพ็กเกจบางตัว หนึ่งในนั้นคือ @repo/db-client ฉันนำเข้ามาใน backend ของ node fastify ของฉัน ซึ่งฉันมีการทดสอบบางอย่าง เพื่อความเรียบง่ายและแสดงให้เห็นปัญหา สมมติว่านี่คือการทดสอบของฉัน:

import { expect, test } from "@jest/gl

อ่านต่อไป →

reactjs - Vitest ต้องการ ESM เกิดข้อผิดพลาด ฉันจะผ่านส่วนนี้ได้อย่างไร

ฉันกำลังใช้งาน React+Vite และกำลังพยายามตั้งค่ากรณีทดสอบหน่วยสำหรับคอมโพเนนต์ แต่เมื่อฉันพยายามรัน ฉันได้รับข้อผิดพลาดดังต่อไปนี้

ข้อผิดพลาด: require() ของโมดูล ES ...\index.js จาก ...\node_modules@nivo\core\dist\nivo-core.cjs.js ไม่รองรับ แทนที่จะเปลี่ยน require ของ index.js ใน ... เป็นการ import() แบบไดนามิกซึ่งมีให้ใช้งานในโมดูล CommonJS ทั้งหมด

อ่านต่อไป →