Я хотел бы опубликовать пакет npm, содержащий мой исходный код, а также файлы распространения. Мой репозиторий Github содержит src
папку, содержащую исходные файлы JavaScript. В процессе сборки создается dist
папка, содержащая файлы распространения. Конечно, dist
папка не проверяется в репозитории Github.
Как мне опубликовать пакет npm таким образом, чтобы, когда кто-то это сделал npm install
, они получили не src
хуже dist
папки? В настоящее время, когда я запускаю npm publish
свой репозиторий git, src
публикуется только папка.
Мой package.json выглядит так:
{
"name": "join-js",
"version": "0.0.1",
"homepage": "https://github.com/archfirst/joinjs",
"repository": {
"type": "git",
"url": "https://github.com/archfirst/joinjs.git"
},
"main": "dist/index.js",
"scripts": {
"test": "gulp",
"build": "gulp build",
"prepublish": "npm run build"
},
"dependencies": {
...
},
"devDependencies": {
...
}
}
.gitignore
ли поле «файлы» или.npmignore
(похоже, что это не так, когда я читал документ) - @Naresh, пожалуйста, скажите нам, какой способ работал нормально.Когда у вас
npm publish
, если у вас нет.npmignore
файла, npm будет использовать ваш.gitignore
файл (в вашем случае вы исключилиdist
папку).Чтобы решить вашу проблему, создайте
.npmignore
файл на основе вашего.gitignore
файла, не игнорируя папку dist .Источник: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
источник
Минимальный пример того, как использовать файлы данных из скрипта
Другой распространенный вариант использования - это файлы данных, которые должны использоваться вашими скриптами.
Это можно легко сделать, используя методы, упомянутые в: В node.JS, как я могу получить путь к модулю, который я загрузил с помощью require, который * не * мой (т.е. в каком-то node_module)
Полный пример можно найти по адресу:
При такой настройке файл
mydata.txt
помещаетсяnode_modules/cirosantilli-data-files/mydata.txt
после установки, потому что мы добавили его в нашуfiles:
записьpackage.json
.myfunc
Затем наша функция может найти этот файл и использовать его содержимое с помощьюrequire.resolve
. Конечно, он также работает только с исполняемым файлом./cirosantilli-data-files
.package.json
mydata.txt
index.js
cirosantilli-данные-файлы
Затем
is-installed-globally
пакет полезен, если вы хотите сгенерировать относительные пути к распределенным файлам в зависимости от того, установлены ли они локально или глобально: Как узнать, был ли пакет npm установлен глобально или локальноисточник