Пожалуйста, объясните ограничение npx - Невозможно использовать библиотеку утверждений при запуске npx mocha - PullRequest
1 голос
/ 12 июня 2019

Tl; др: npx -p chai -p mocha mocha test.js возвращает ошибку: не удается найти модуль 'chai'

Вопрос: я не могу использовать чай здесь? Потому что ..? ... Это не исполняемый файл?

Контекст:

Я подумал, что хорошим вариантом использования npx будет написание тестовых примеров и кода вместе в одном файле и запуск этих тестов (кажется, идеально подходит для того, чтобы дать людям возможность взять в руки tdd, не слишком заботясь об окружающей экосистеме.)

Этот пример мокко прекрасно работает:

// addOne/test.js
const assert = require('assert')

function addOne(num){
  return isNaN(num) ? 'not a number' : num+1
}


describe('addOne', function() {

  it('returns a number increased by a value of 1' , function(){
    assert.equal(addOne(0), 1)
    assert.equal(addOne(-1), 0)
    assert.equal(addOne(.1), 1.1)
  })

  it('returns the message "not a number" if given a non-number value', function(){
     assert.equal(addOne('foo'), 'not a number')
     assert.equal(addOne(function(){return 2}), 'not a number')
  })

})

(В корне каталога addOne запустите npx mocha test.js)

ОДНАКО Что если я хочу использовать библиотеку ожиданий, например, «ожидание» Чая?

var chai = require('chai')
var expect = chai.expect

< function >

describe('addOne', function() {

  it('returns a number increased by a value of 1' , function(){
    expect(addOne(0)).to.equal(1)

< etc >

Зная, что я могу установить несколько пакетов с npx, я попытался запустить

npx -p chai -p mocha mocha test.js

но получите: Error: Cannot find module 'chai'

Я достиг ограничения по NPC? Должны ли все предоставляемые вами пакеты быть исполняемыми?

...