В настоящее время я разрабатываю пакет NPM, который запускает экспресс-сервер для размещения изображений.Он существует в каталоге в проекте Laravel.
В настоящее время он все еще находится в разработке, и я хочу превратить его в публикуемый модуль, поэтому я добавил .gitignore для этого пакета в свой проект Laravel.
В моем пакете NPM я запускал npm link
, а в моем проекте Laravel я запускал npm link imageserver
, imageserver , являющийся именем моего пакета.Это гарантирует, что я смогу разработать свой пакет без необходимости постоянно публиковать и вносить новые изменения с помощью NPM.
Теперь мне может потребоваться пакет внутри моего JavaScript с оператором require()
, но я просто хочу запуститьсервер экспресс, который является этим пакетом через сценарии npm.
В пакете imageserver я настроил package.json
, содержащий это:
"scripts": {
"start": "nodemon app.js"
}
Как я могу позвонитьсценарий npm run start
для пакета, который я связал?
В моем проекте Laravel я просто хотел бы запустить свой связанный серверный пакет следующим образом:
"scripts": {
"start": "imageserver"
}
Но в этом случае яполучаю:
imageserver: не найдено
Обычно вы можете нормально запускать пакеты из сценариев NPM, если они установлены в вашем каталоге node_modules
.Разве это не относится к связанным пакетам?
Редактировать
Я добавил свойство bin
в мой файл package.json
, чтобы сделать его исполняемым и добавить его вмой глобальный путь.По крайней мере, таким образом я могу вызвать imageserver
из моих сценариев NPM, и это работает.Теперь я получаю ошибки разрешения, хотя:
//: Permission denied
/home/workstation/.nvm/versions/node/v10.1.0/bin/imageserver: 2: /home/workstation/.nvm/versions/node/v10.1.0/bin/imageserver: global.__base: not found
/home/workstation/.nvm/versions/node/v10.1.0/bin/imageserver: 4: /home/workstation/.nvm/versions/node/v10.1.0/bin/imageserver: //: Permission denied
/home/workstation/.nvm/versions/node/v10.1.0/bin/imageserver: 5: /home/workstation/.nvm/versions/node/v10.1.0/bin/imageserver: Syntax error: "(" unexpected