ค้นหาเว็บไซต์
ดังนั้นฉันมีแอปพลิเคชันที่พึ่งพาไลบรารีซึ่งเราได้เผยแพร่บน 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 อ่านต่อไป →ไฟล์ทดสอบ 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", () => อ่านต่อไป →นี่คือตัวอย่างกับ NestJS บริสุทธิ์ที่ทำงานได้ดี https://github.com/robertIsaac/nest-esm
นี่คือตัวอย่างกับ nestjs กับ nx ที่ไม่ทำงาน https://github.com/robertIsaac/nx-nest-esm
ฉันได้เปิดปัญหาใน nx แล้ว https://github.com/nrwl/nx/issues/19618 ผ่านมาเป็นเดือนแล้วแต่พวกเขายังไม่ได้แก้ไขและบอกว่าต้องใช้เวลาหลายสัปดาห์ และให้วิธีแก้ชั่วคราวที่ก็ยังใช้ไม่ได้อยู่
วิธีการสืบพันธุ์
ฉันมีมอนอเรโปขนาดใหญ่ที่ใช้ NX ครึ่งโหลแอป ทั้ง frontend และ backend หลายสิบไลบรารี ทั้งหมดยังคงตั้งค่าให้ทำงานกับประเภทโมดูล commonjs ซึ่งเป็นสิ่งที่ตัวสร้างของ NX สร้างขึ้นเสมอ และยังคงสร้างอยู่
อย่างไรก็ตาม ห้องสมุดมากขึ้นเรื่อย ๆ ปล่อยเวอร์ชัน "ESM only" ซึ่งตรง ๆ แล้วไม่สามารถทำงานได้เลยสำหรับมอนอรีโปนี้
ฉันเพิ่งทำการ nx migrate latest เสร็จ, ใช้ NX 17, Typescript 5.2, Angular 17, แต่ commonjs ก็ดูเหมือนจะยังอยู่เหมือนเดิม
การพยายามอัปเกรดด้วยตนเองทั้งหมดล้มเหลว ทุกครั้
อ่านต่อไป →
ฉันกำลังใช้ 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
ในตอนนี้ ESM เป็นสิ่งที่จำเป็นส่วนใหญ่ เนื่องจากไลบรารีที่จำเป็นกำลังส่งออกเฉพาะไปยัง ESM และการใช้ไลบรารีเก่าไม่เป็นที่ยอมรับ นอกจากนี้ ฉันยังอยากหลีกเลี่ยงการใช้แฮ็ก การโคลน และการนำเข้าแปลก ๆ (เช่น import-sync) เพื่อให้มันทำงานใน CommonJS
ดังนั้นสถานะปัจจุบันควรจะเป็นว่า Electron รองรับ 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(...); }น
อ่านต่อไป →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 */); ^ อ่านต่อไป →แม้ว่าปัญหานี้ดูเหมือนง่ายมากที่จะซ่อมแซม และมีโพสต์บางส่วนที่กล่าวถึงปัญหาที่คล้ายกัน ฉันได้ทำทุกอย่างที่เป็นไปได้ก่อนมาที่นี่เพื่อถาม แต่ปัญหานี้ยังคงอยู่
ฉันมี TS monorepo ที่มีแพ็กเกจบางตัว หนึ่งในนั้นคือ @repo/db-client ฉันนำเข้ามาใน backend ของ node fastify ของฉัน ซึ่งฉันมีการทดสอบบางอย่าง เพื่อความเรียบง่ายและแสดงให้เห็นปัญหา สมมติว่านี่คือการทดสอบของฉัน:
import { expect, test } from "@jest/gl อ่านต่อไป →
ฉันกำลังใช้งาน React+Vite และกำลังพยายามตั้งค่ากรณีทดสอบหน่วยสำหรับคอมโพเนนต์ แต่เมื่อฉันพยายามรัน ฉันได้รับข้อผิดพลาดดังต่อไปนี้
ข้อผิดพลาด: require() ของโมดูล ES ...\index.js จาก ...\node_modules@nivo\core\dist\nivo-core.cjs.js ไม่รองรับ แทนที่จะเปลี่ยน require ของ index.js ใน ... เป็นการ import() แบบไดนามิกซึ่งมีให้ใช้งานในโมดูล CommonJS ทั้งหมด
อ่านต่อไป →