Estoy tratando de modificar este paquete npm existente sin mucho éxito. He perdido varias horas solucionando problemas agradecería alguna orientación.
https://www.npmjs.com/package/dxf
He bifurcado el paquete en mi cuenta de Github. Luego usé npm para instalar el módulo localmente (W10 ejecutando el último nodo LTS).
npm i https://github.com/mgbolts/dxfSe instala sin errores, pero cuando lo requiero en mi aplicación, aparece este error:
Error: Cannot find module 'S:\mgbolts\coding\Udemy\Nodejs\projects\plasma\node_modules\dxf\lib\index.js'. Please verify that the package.json has a valid "main" entryMirando en la carpeta del módulo dxf, no hay subdirectorio lib y el archivo index.js se encuentra en el subdirectorio src. Modifiqué el archivo package.json en la carpeta del paquete dxf para reflejar esto. Después de esta edición, ahora aparece este error:
S:\mgbolts\coding\Udemy\Nodejs\projects\plasma\node_modules\dxf\src\index.js:1 import config from './config' SyntaxError: Cannot use import statement outside a module at Object.compileFunction (node:vm:352:18) at wrapSafe (node:internal/modules/cjs/loader:1031:15) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10) at Module.load (node:internal/modules/cjs/loader:981:32) at Function.Module._load (node:internal/modules/cjs/loader:822:12) at Module.require (node:internal/modules/cjs/loader:1005:19) at require (node:internal/modules/cjs/helpers:102:18) at Object.<anonymous> (S:\mgbolts\coding\Udemy\Nodejs\projects\plasma\src\index.js:2:13) at Module._compile (node:internal/modules/cjs/loader:1101:14)Luego intenté agregar una nueva entrada ("tipo": "módulo") al archivo package.json en la carpeta del módulo. Después de eso me sale este error:
S:\mgbolts\coding\Udemy\Nodejs\projects\plasma\src\index.js:2 const dxf = require('dxf') ^ Error [ERR_REQUIRE_ESM]: require() of ES Module S:\mgbolts\coding\Udemy\Nodejs\projects\plasma\node_modules\dxf\src\index.js from S:\mgbolts\coding\Udemy\Nodejs\projects\plasma\src\index.js not supported.Mi código es muy simple para resolver este problema, solo un simple const dxf = require('dxf').
Aquí hay un extracto del archivo package.json como con las dos ediciones mencionadas anteriormente:
"name": "dxf", "version": "4.6.1", "description": "DXF parser for node/browser", "main": "src/index.js", "type": "module", "bin": { "dxf-to-svg": "src/cli.js" }El asunto ha sido resuelto. No me di cuenta de que necesitaba compilar el paquete al instalar desde github. No es algo requerido al instalar desde el registro de NPM.
El archivo package.json del módulo tiene una secuencia de comandos para ejecutar la secuencia de comandos del proceso de compilación.
npm ejecutar prepublishOnly
Tomó un poco de tiempo instalar las dependencias (browserify, babel, rimraf) pero se compiló y ahora funciona...