רולאפ TypeScript: הצהרות ב-dist + cjs + es

אני מנסה לארוז ספריית TypeScript באמצעות rollup עם קבצי הצהרה (d.ts), ואני רוצה להפיק גם גרסאות cjs וגם es.

אז עלה לי הרעיון עם קונפיגורציית רולאפ הזו:

const {nodeResolve} = require('@rollup/plugin-node-resolve') const nodeExternals = require('rollup-plugin-node-externals'); const json = require('@rollup/plugin-json'); const commonjs = require('@rollup/plugin-commonjs'); const typescript = require('rollup-plugin-typescript2'); const packagePlugin = require('@mpen/rollup-pl

קרא עוד →

node.js - איך להגדיר TypeScript כדי לאפשר ייבוא מ-CJS ל-ES מודולים (node-fetch ו-Express)?

אני מנסה להפעיל שני ספריות בפרויקט אחד: fetch-node, שהיא מודול ES, ו-Express, שהיא CommonJS. הבעיה היא שאני צריך לייבא את fetch-node כך:

import fetch from 'node-fetch';

אבל Express דורש ממני לייבא אותו כ

קרא עוד →

javascript - צורת KineticJS ב-TypeScript

אני מנסה ליצור צורה בהתבסס על קוד ה-JavaScript הבא של kineticjs:

var triangle = new Kinetic.Shape({ drawFunc: function(canvas) { var context = canvas.getContext(); context.beginPath(); context.moveTo(200, 50); context.lineTo(420, 80); context.quadraticCurveTo(300, 100, 260, 170); context.closePath(); canvas.fillStroke(this); }, fill: '#00D2FF', stroke: 'black', strokeWidth: 4 });

זהו דוגמה שניתן למצו

קרא עוד →

javascript - יצירת מופע ברירת מחדל של מחלקה גורמת ל-TypeError (אינטראקציה בין ESM ל-CJS)

סיכום הבעיה

שלום,

יש לי פרויקט TypeScript שבו אני מנסה ליזום מופע של מחלקה שהייתה הייצוא ברירת המחדל של חבילה אחרת. אני כותב את הפרויקט שלי בסינטקס ESM, בעוד שהחבילה שהיא תלויה בה מייצרת פלט CJS. הבעיה שאני נתקל בה היא שבזמן ריצה, כאשר הזרימה

קרא עוד →

בניית CJS ו-ESM באמצעות הפניות לפרויקטים של TypeScript במונורפו

יש לי פרוטוטיפ של monorepo ב-TypeScript מוגדר ופועל עם cjs, יארן וורקספייס והפניות לפרויקטים תוך שימוש בבניות אינקרמנטליות:

https://github.com/rosskevin/learn-a/tree/build-cjs-esm

מאז ש-tsc -b משתמש בקובץ tsconfig.json ברירת המחדל בכל

קרא עוד →

javascript - איך ללחוץ דרך אובייקט של fabricjs כדי לבחור אובייקט שמתחתיו (בלי להשתמש בתכונת evented)

איך גורמים לאובייקט fabricjs להיות "נעול" כך ש:

  1. זה לא ניתן לבחירה (obj.selectable=false)
  2. מאפשר את אירוע 'mousedown' ללחיצה ימנית (obj.evented חייב להיות נכון)
  3. אין מצב/אירוע ריחוף (העכבר לא מזהה את האובייקט הזה בעת ריחוף או משנה את הסמן)
  4. מאפשר לעכבר ללחוץ על אובייקטים שמתחתיו (העכבר יכול לגשת לאובייקטים דרכו)

ניסיתי לחפש את הקוד שמטפל בתכונה 'evented' אך לא הצלחתי למצוא אותו בקוד המקור. התכונה evented אכן גורמת לאובייקט להיות שקוף (כלומר, ניתן ללח

קרא עוד →

angular - איך למנוע קנה מידה של טקסט בעת שינוי גודל תיבת הטקסט עם fabricjs

אני חדש ב-FabricJs והדאגה שלי היא בקשר לשינוי הגודל של תיבת הטקסט - יש לי את הפתרון הבא שמאפשר לשנות את הגודל של תיבת הטקסט אנכית ואופקית, אך לא בו זמנית. ניסיתי למצוא פתרון שעושה את שניהם בו זמנית מבלי שהטקסט יתכווץ או יתרחב. האם תוכל בבקשה לעזור לי למצוא פתרון?

הנה קישור לדוגמת

קרא עוד →

מודולי ES6 - האם TypeScript יכול לייבא תלויות גם מ-ESM וגם מ-CJS?

אני כותב יישום TypeScript שמשתמש בתלויות מותקנות עם NPM:

  • חלק מהתלויות האלה מייצאות דרך CJS
  • חלק מהתלויות האלה מייצאות דרך ESM

האם יש קובץ קונפיגורציה tsconfig.json שיאפשר לי להשתמש בכל התלויות האלה בצורה שקופה?

תשובה #1

כן, ז

קרא עוד →

javascript - התאמת גודל תיבת הטקסט של fabricjs כדי להתאים לבחירת הטקסט

יש לי קטע קוד שיוצר Textbox חדש בדרך הזו:

new fabric.Textbox('Ajouter du texte')

הבעיה היא שהתיבת הטקסט קטנה מדי בהשוואה לתוכן שלה:

אם אני קובע רוחב קבוע, אני מקבל קצת ריפוד מסביב:

new fabric.Textbox('Ajouter du texte', {width: 350})

קרא עוד →

TypeScript - ״Canvas אינו בנאי״ שגיאה - שימוש ב-FabricJS עם Angular 6

אני עובד על פרויקט ששודרג לאחרונה מ-Angular 5 ל-6. אני מוסיף תכונה חדשה שדורשת ממני לצייר תמונות מתוך נתונים, אז ניסיתי להשתמש באובייקטי ה-Canvas וה-SVG של ה-DOM כדי לעשות זאת. ל-FabricJS יש הרבה תכונות שאני צריך.

ניסיתי להוסיף את זה לפרויקט אתמול בלילה. הורדתי את גרסאות ה-DEV/MIN המלאות של FabricJS מהאתר, גרסה 2.3.3. לאחר מכן יצרתי תיקייה בשם "fabric" בתיקיית node_modules שלי ושמתי שם את קבצי *.js. ערכתי את הקובץ angular.json שלי כדי לכלול זאת:

"scrip

קרא עוד →