Babel 插件文档说:
- 插件在预设之前运行.
- 插件排序是第一个.
- 预设顺序相反(从最后到第一个).
Babel .babelrc文档说:
特定于某个环境的选项将合并到并覆盖非env特定选项.
文档并没有确切地说它们是如何合并的.
我正在使用样板React项目react-slingshot,我想利用类属性转换.该项目使用babel-preset-stage-1,包括babel-plugin-transform-class-properties.类属性转换应该让我编写如下代码:
class Example extends Component {
static propTypes = {
...
}
}
Run Code Online (Sandbox Code Playgroud)
在.babelrc该项目是:
{
"presets": [
"react",
"stage-1"
],
"env": {
"development": {
"presets": [
"latest",
"react-hmre"
]
},
"production": {
"presets": [
["latest", {
"es2015": {
"modules": false
}
}]
],
"plugins": [
"transform-react-constant-elements",
"transform-react-remove-prop-types"
]
},
"test": {
"presets": [
"latest"
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
但当按原样使用时,我得到:
Module build …Run Code Online (Sandbox Code Playgroud) 我正在使用Jest为Node / Express / Mongo项目设置测试。我试图编写一个函数来清除集合,所以每个测试都以一个干净的状态开始:
const clearCollection = (collectionName, done) => {
const collection = mongoose.connection.collections[collectionName]
collection.drop(err => {
if (err) throw new Error(err)
else done()
)
}
beforeEach(done => {
clearCollection('users', done)
})
Run Code Online (Sandbox Code Playgroud)
再一次尝试,并保证:
const clearCollection = collectionName => {
const collection = mongoose.connection.collections[collectionName]
return collection.drop()
}
beforeEach(async () => {
await clearCollection('users')
})
Run Code Online (Sandbox Code Playgroud)
问题在于它们在工作和引发错误之间都交替出现。每次保存文件时,它要么完美运行,要么抛出错误,每次都交替出现。错误始终是以下之一:
MongoError: cannot perform operation: a background operation is currently running for collection auth_test.users
MongoError: ns not found
Run Code Online (Sandbox Code Playgroud)
通过clearCollection()在a内调用自身catch(),我可以使其在100%的时间内工作(无论如何受堆栈限制),但这感觉很不对劲:
const clearCollection …Run Code Online (Sandbox Code Playgroud)