не может найти модуль во время выполнения при импорте мастера, но может из версии - PullRequest
0 голосов
/ 06 апреля 2019

У меня есть модуль узла, который импортируется и работает правильно, когда указан в package.json как "samlify": "2.3.6",, но не как "samlify": "tngan/samlify#master",. yarn корректно обновляет yarn.lock и заполняет папку node_modules любым из источников, но при компиляции и запуске ($(yarn bin)/tsc, <package name> serve) 2.3.6 работает правильно, в то время как tngan/samlify#master дает это чудовище:

Failed with error { Error: Cannot find module 'samlify'
at Function.Module._resolveFilename (module.js:548:15)
at Function.Module._load (module.js:475:25)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/PATH/src/controllers/SAMLAPI.ts:10:1)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
at /PATH/node_modules/ts-express-decorators/src/server/components/ServerLoader.ts:422:44
at Array.map (<anonymous>)
at ServerLoader.scan (/PATH/node_modules/ts-express-decorators/src/server/components/ServerLoader.ts:419:18)
at /PATH/node_modules/ts-express-decorators/src/server/components/ServerLoader.ts:451:18
at Array.forEach (<anonymous>)
at ServerLoader.mount (/PATH/node_modules/ts-express-decorators/src/server/components/ServerLoader.ts:450:32)
at /PATH/node_modules/ts-express-decorators/src/server/components/ServerLoader.ts:502:78
at Array.forEach (<anonymous>)
at bind (/PATH/node_modules/ts-express-decorators/src/server/components/ServerLoader.ts:502:56)
at /PATH/node_modules/ts-express-decorators/src/server/components/ServerLoader.ts:534:21
at Map.forEach (<anonymous>)
at ServerSettingsProvider.forEach (/PATH/node_modules/ts-express-decorators/src/config/class/ServerSettingsProvider.ts:379:25)
at ServerLoader.setSettings (/PATH/node_modules/ts-express-decorators/src/server/components/ServerLoader.ts:530:14)
at new ServerLoader (/PATH/node_modules/ts-express-decorators/src/server/components/ServerLoader.ts:98:18)
at new Server (/PATH/src/server/server.ts:49:5)
at main (/PATH/src/commands/serve.ts:30:9)
at Object.exports.handler (/PATH/src/commands/serve.ts:20:3)
at Object.runCommand (/PATH/node_modules/yargs/lib/command.js:228:22)
at Object.parseArgs [as _parseArgs] (/PATH/node_modules/yargs/yargs.js:1013:30)
at Object.get [as argv] (/PATH/node_modules/yargs/yargs.js:957:21)
at Object.<anonymous> (/PATH/bin/id:10:5)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
at Function.Module.runMain (module.js:694:10)
at startup (bootstrap_node.js:204:16)
at bootstrap_node.js:625:3 code: 'MODULE_NOT_FOUND' }

Строка 10, конечно, это import * as samlify from "samlify";.

Дело в том, что в папке node_modules определенно есть пакет samlify. Что-то глупое, что мне не хватает?

При запуске с NODE_DEBUG=module имеется небольшое количество дополнительных релевантных выходных данных:

MODULE 76563: Module._load REQUEST samlify parent:
/PATH/build/controllers/SAMLAPI.js
MODULE 76563: looking for "samlify" in ["/PATH/build/controllers/node_modules","/PATH/build/node_modules","/PATH/node_modules","/PARENT_PATH/node_modules","/GP_PATH/node_modules","/GGP_PATH/node_modules","/GGGP_PATH/node_modules","/Users/laverya/node_modules","/Users/node_modules","/node_modules","/Users/laverya/.node_modules","/Users/laverya/.node_libraries","/usr/local/Cellar/node@8/8.15.1/lib/node"]

узел v8.15.1 и пряжа 1.15.2 на MacOS 10.14, все они установлены вместе с homebrew.

Я немного цензурировал пути - /PATH будет /Users/laverya/long/path/to/ts/project.

...