Пользовательский локальный модуль npm как зависимость - PullRequest
0 голосов
/ 08 мая 2018

Я создал проект с использованием скриптов npm, чтобы избежать использования gulp. Дело в том, что у моего проекта есть два сценария:

prepare.sh (uses wget to download some files and do mkdirs)
process.js (transform a json file into another overriding some keys)
package.json

{
"scripts": {
  "process": "./process.js",
  "prepare": "./prepare.sh $npm_package_config_source $npm_config_env",
  "config": "npm run prepare && npm run process"
},
"config": {
   "source": "https://myurl"
},
"devDependencies": {
  "fs": "0.0.1-security",
  "json-override": "^0.2.0"
}

}

Итак, если я хочу применить преобразование в этом проекте, я запускаю npm run config, но я хочу, чтобы этот проект был частью другого в качестве локального модуля интерфейсного проекта.

Как я могу настроить свой проект? И когда я добавляю его в качестве зависимости моего фронт-проекта, как я могу вызвать скрипт конфигурации из package.json фронт-проекта?

1 Ответ

0 голосов
/ 08 мая 2018

Вы можете добавить объект bin в файл package.json, в результате чего файлы будут установлены в папку node_modules / .bin docs.npmjs.com/files/package.json#bin

.

пример

{
  "bin": {
    "process": "./process.js",
    "prepare": "./prepare.sh"
  },
  "scripts": {
    "config": "prepare && process"
  },
  "devDependencies": {
    "fs": "0.0.1-security",
    "json-override": "^0.2.0"
  }
}

Также, поскольку npm запускает скрипты с node_modules / .bin как частью пути, вы можете просто вызывать их только по имени. Просто не забудьте добавить #!/usr/bin/env node в начало процесса. Js

...