Пакет, опубликованный в 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 (только предположение)

Другие вопросы по тегам