请说明npx限制-运行npx mocha

时间:2019-06-12 01:05:09

标签: node.js npm mocha npx

Tl; dr: npx -p chai -p mocha mocha test.js产生错误:找不到模块“柴”

问题:我在这里不能使用柴?因为..?...它不是可执行文件?

上下文:

我认为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

但是 如果我想使用期望库(例如chai的“期望”)怎么办?

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'

我是否达到了npx的限制?您提供的所有软件包都必须可执行吗?

0 个答案:

没有答案