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的限制?您提供的所有软件包都必须可执行吗?