Пакет, опубликованный в npm, почти пуст: просто опубликуйте README, LICENSE и package.json.
У меня есть проект компонента реагирования, созданный с помощью nwb. Я использую Трэвис и семантический релиз, чтобы сделать релизы.
Но теперь, когда я публикую новую версию, пакет, опубликованный в Travis, почти пуст и содержит только три файла: README, LICENSE и package.json.
Моя конфигурация.travis.yml...
sudo: false
language: node_js
cache:
directories:
- ~/.npm
notifications:
email: false
node_js:
- '8'
before_install:
- npm install npm codecov.io coveralls
after_success:
- cat ./coverage/lcov.info | ./node_modules/codecov.io/bin/codecov.io.js
- cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js
- npm run travis-deploy-once "npm run semantic-release"
branches:
only:
- master
Сборка Трэвиса выглядит нормально, и я не вижу никаких ошибок. Он обнаруживает новую версию и публикует ее, но просто публикует эти три файла.
Публичный репозиторий Github это...
https://github.com/rigobauer/react-abc2svg
... и вы можете проверить сборку Travis здесь...
https://travis-ci.org/rigobauer/react-abc2svg/jobs/332199646
Если я устанавливаю номер версии вручную в package.json и запускаю npm publish
в моем компьютере, то пакет опубликован правильно.
Я попытался очистить кэши npm, переустановить все зависимости, воссоздать.travis.yml, используя semantic-release-cli setup
и т. д. Но я всегда получаю один и тот же результат. Когда я пытаюсь обновить или установить пакет в другом проекте, каталог в node_modules содержит только эти три файла.
Любая идея о том, где может быть проблема?
ОБНОВЛЕНО: я заново создал проект с помощью nwb, переустановил зависимости и т. Д. И у меня та же проблема.
ОБНОВЛЕНО 2: у меня есть список каталогов, настроенный в package.json, как это...
"files": [
"css",
"es",
"lib",
"umd"
]
... но я также пытался создать .npmignore
файл. Проблема сохраняется.
3 ответа
Понял! Ребята из семантического релиза, я понимаю, что мне нужно вручную указать Трэвису, чтобы я запускал мой скрипт сборки (сгенерированный с помощью nwb). Так что просто изменив это на.travis.yml, чтобы оно заработало...
.......
after_success:
- cat ./coverage/lcov.info | ./node_modules/codecov.io/bin/codecov.io.js
- cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js
- npm run build
- npm run travis-deploy-once "npm run semantic-release"
........
Я думал, что Трэвис делал это автоматически, потому что у меня есть другой проект, созданный с использованием точно такого же процесса, и этот пакет был в порядке (и это сводило меня с ума). Прочитав их ответ, я перепроверил все и понял, что я сделал первую публикацию этого пакета вручную, а после этого включаю семантическую версию. Дело в том, что следующие коммиты не были связаны с функцией или исправлением, поэтому semantic-release не генерирует новый релиз, а оригинальный пакет все еще был там.
Если кто-то сталкивается с такой же проблемой, вот проблема Git с ответом: https://github.com/semantic-release/semantic-release/issues/615
Я нашел это в документах Трэвиса, может быть, вы должны добавить skip_cleanup: true
вариант для вашего travis.yml (только предположение)