捆绑一堆 require 语句同时避免命名空间
Bundling a bunch of require statements while avoiding namespacing
我有一个测试套件,在每个测试文件中我发现自己通常会导入一堆模块
const chai = require('chai')
const sinon = require('sinon')
const expect = chai.expect
const should = chai.should()
const testData = require('../test/test-data')
有没有什么方法可以将所有这些 require
调用捆绑在一个 require
、 中而不 使用命名空间?
例如:
require('../test/test-bundle')
console.log(chai) // ok
console.log(sinon) // ok
console.log(expect) // ok
console.log(should) // ok
console.log(testData) // ok
我不能说我的解决方案很好,但它会让你减少重复代码的数量。
您可以定义一个新模块 (test-util.js) 并在那里要求所有需要的模块。之后,在每次测试中,只需要一个模块,并使用解构赋值语法来避免命名空间。
The destructuring assignment syntax is a JavaScript expression that makes it possible to unpack values from arrays, or properties from objects, into distinct variables.
测试-util.js:
module.exports = {
chai: require('chai'),
sinon: require('sinon'),
expect: require('chai').expect,
should: require('chai').should(),
testData: require('../test/test-data')
};
test.js
let { chai, sinon, expect, should, testData } = require('./test-util.js');
我有一个测试套件,在每个测试文件中我发现自己通常会导入一堆模块
const chai = require('chai')
const sinon = require('sinon')
const expect = chai.expect
const should = chai.should()
const testData = require('../test/test-data')
有没有什么方法可以将所有这些 require
调用捆绑在一个 require
、 中而不 使用命名空间?
例如:
require('../test/test-bundle')
console.log(chai) // ok
console.log(sinon) // ok
console.log(expect) // ok
console.log(should) // ok
console.log(testData) // ok
我不能说我的解决方案很好,但它会让你减少重复代码的数量。 您可以定义一个新模块 (test-util.js) 并在那里要求所有需要的模块。之后,在每次测试中,只需要一个模块,并使用解构赋值语法来避免命名空间。
The destructuring assignment syntax is a JavaScript expression that makes it possible to unpack values from arrays, or properties from objects, into distinct variables.
测试-util.js:
module.exports = {
chai: require('chai'),
sinon: require('sinon'),
expect: require('chai').expect,
should: require('chai').should(),
testData: require('../test/test-data')
};
test.js
let { chai, sinon, expect, should, testData } = require('./test-util.js');