Node.js & Lerna - Запуск cucumber-js внутри символической ссылки node_module .bin - PullRequest
0 голосов
/ 04 октября 2018

Я новичок в Узле и Лерне.Я пришел из Java-фона и пытаюсь создать проект узла monorepo с использованием Lerna - очень похоже на maven и его модули.

Моя текущая структура проекта выглядит примерно так: Обратите внимание, что package-1 внутри package-2/node_modules/ является символической ссылкой, созданной с использованием lerna add @me/package-1 --scope=@me/package-2

|packages
    |package-1
    |   |node_modules
    |   |   |.bin
    |   |   >cucumber-js
    |   >package.json
    |package-2
    |   |node_modules
    |   |   |@me
    |   |       |package-1
    |   |           |node_modules
    |   |           |   |.bin
    |   |           |   >cucumber-js
    |   >package.json
    >lerna.json
    >package.json
    >package-lock.json

Я могу запустить cucumber-js из package-1, используя 2 способа:

добавить скрипт в package-1/package.json, вызывая cucumber-js и запуститьскрипт под package-1 реж.Например,
...
"scripts": {
    "test": "cucumber-js"
}...


~documents/my-project/packages/package-1
$ npm run test

напрямую позвоните по номеру cucumber-js из пакета 1.например,
~documents/my-project/packages/package-1
$ ./node_modules/.bin/cucumber-js

Я считаю, что можно сделать то же самое из пакета-2, но пока я не могу заставить его работать.

До сих пор я пытался сделать прямойзвоните из package-2 dir вот так:

~documents/my-project/packages/package-2
$ ./node_modules/@me/package-1/node_modules/.bin/cucumber-js

но я получаю ошибку:

Error: Cannot find module 'cucumber' from 'documents\my-project\packages\package-2'
    at documents\my-project\packages\package-1\node_modules\resolve\lib\async.js:51:31
    at processDirs (documents\my-project\packages\package-1\node_modules\resolve\lib\async.js:185:39)
    at ondir (documents\my-project\packages\package-1\node_modules\resolve\lib\async.js:200:13)
    at load (documents\my-project\packages\package-1\node_modules\resolve\lib\async.js:83:43)
    at onex (documents\my-project\packages\package-1\node_modules\resolve\lib\async.js:108:17)
    at documents\my-project\packages\package-1\node_modules\resolve\lib\async.js:12:69
    at FSReqWrap.oncomplete (fs.js:152:21)

Возможно ли то, что я пытаюсь сделать, или это означает, что мне нужноустановить огурец для каждого зависимого пакета?

...