2012-04-11 3 views
22

Я представляю модульное тестирование в своем проекте, и для этого мне нужно сделать файл package.json.package.json generation/npm неиспользуемые пакеты

Первый вопрос есть, который unit testing suite Вы используете? Я с нетерпением жду mocha, которые кажутся довольно стандартными для проектов Node.js.

Второй вопрос: Есть ли волшебный способ создания файла package.json? (Для зависимостей и версий)

Третьего вопроса является: Я тестировал много npm packages при разработке своего проекта, и теперь я застрял с большим количеством вероятно неиспользуемых пакетов. Есть ли способ сказать, какой из них бесполезен? (Я видел npm list installed, который полезен, хотя)

+2

http://npmjs.org/doc/init.html, вероятно, самый простой способ создать проект npm. И я советую вам читать тонну http://npmjs.org/doc/json.html и стремиться самостоятельно использовать хорошо используемые и проверенные пакеты, такие как express или npm. –

+0

Вы действительно должны задать три отдельных вопроса. – Domenic

+1

Вау! Столько хороших ответов! Спасибо всем, это очень полезно! Держись! – TomShreds

ответ

6
  1. Я также использую Mocha.Он имеет покрытие кода, BDD, TDD, работает в браузере. Это довольно полно, а также в значительной степени поддерживается, я думаю, один из самых ярких javascript/node.js программистов по имени TJ.

  2. Почти невозможно догадаться, какую версию использовать. Потому что npm не знает, какая версия ломает зависимости. Вероятно, вы могли бы установить все зависимости, используя что-то вроде node-detective. Затем вы можете просто установить их с помощью npm.js из javascript. Возможно, я хотел бы заняться этим в будущем.

  3. Я также, вероятно, удалю все зависимости, затем установите необходимые зависимости, используя шаг (2). Но и дисковое пространство больше не такое большое дело с текущими HD.

P.S: Я думаю, что я также согласен с Доменик

3
  1. Я использую обеты. Это довольно хорошо, но не идеально. Я обнаружил, что модульное тестирование в узле часто бывает сложным из-за асинхронных обратных вызовов в dbs &, и они в основном тестировали функции верхнего уровня.

  2. Вот ваша магия: Managing Node.js Dependencies with Shrinkwrap.

  3. Единственный способ узнать, какие пакеты вы используете, это знать. Вы не можете сгенерировать это программно. Моим советом было бы агрессивно удалить пакеты, а затем повторить все функциональные возможности - если он сломается, вы узнаете, что вам нужно переустановить один из ваших пакетов.

+0

+1 для точки № 3 – Domenic

34
  1. Я использую мокко.

  2. npm init

  3. npm ls перечислит "посторонний" рядом те, которые не в вашей package.json. Но, похоже, у вас еще нет package.json.


В принципе, ваш рабочий процесс является очень отсталой. Вот как это работает:

  1. Запустите новый проект с npm init. У него нет зависимостей.
  2. О, я хочу начать использовать пакет, скажем express? Добавьте его в package.json под зависимостями, затем запустите npm install.
  3. О, я хочу начать использовать пакет для разработки, скажем mocha? Добавьте его в package.json под devDependencies, затем запустите npm install.

У вас, похоже, есть существующий код с установленными вручную пакетами (через npm install <packageName>), что является беспорядком. Я предлагаю начать и выполнить описанный выше рабочий процесс.

+0

Вы совершенно правы, когда говорите, что это отстало. Предполагалось, что это крошечный тестовый проект, но получился намного больше, а не для тестирования, чем я ожидал. Спасибо за Ваш ответ! – TomShreds

+9

Вы также можете сделать npm install --save', который автоматически добавит его в ваш 'package.json'. Подробнее см. Здесь: https://npmjs.org/doc/install.html. Мне кажется, что это проще, чем описанный выше Доменик. – stephenbez

+3

Также '--save-dev' для' devDependencies' (doc в указанной ссылке) – chakrit

2

Отвечая на Ваш третий вопрос, вы можете использовать Sweeper в список неиспользуемых зависимостей, и их удалить их с package.json. Просто npm install -g sweeper, затем в каталоге проекта вызовите sweeper в командной строке.

20

Для ответа на третий вопрос :

npm prune

удалит все установленные модули, которые больше не упоминаются в вашем package.json.


И вы действительно должны были задать 3 отдельных вопроса.

Смежные вопросы