node mocha babel如何避免解析特定的库?

时间:2017-05-06 10:19:56

标签: node.js mocha webstorm babel

CMy项目目录结构如下:

project
   |_ config  ( config .js files)
   |_ coverage ( reporting result files )
   |_ dist ( compiled project for distribution )
   |_ docs ( temporary wip .js files NOT TO BE parsed ! )
   |_ server
       |_helpers ( js files )
       |_models. ( js files )
       |_v1
          |_controllers ( js files)
          |_routes (js files )
          L_tests ( js files )
      |_ all .files ( .env, .git, .yarn, ..etc
      |_index.js
      |_package.json

运行测试:

    "test:v1": "cross-env NODE_ENV=test ./node_modules/.bin/mocha 
    --timeout 15000 --ui bdd --reporter spec --colors 
    --compilers js:babel-core/register server/v1/tests/user.test.js 
    --recursive",

我在doc目录中的.js文件上遇到解析错误 因为在测试中不考虑这些文件,我怎样才能避免解析docs目录?
我使用Webstorm 2017作为IDE ...

感谢您的反馈

更新

在我的package.json文件中我有:

"babel": {
  "presets": [
    "es2015",
    "stage-2"
  ],
  "ignore": "docs/**/*.js", <= also tried ./docs/**/*.js
  "plugins": [
    "add-module-exports"
  ]
}

2 个答案:

答案 0 :(得分:0)

您可以将您的Babel配置为跳过特定文件或文件夹:https://babeljs.io/docs/usage/babelrc/

例如,尝试添加到package.json

  "babel": {
    "ignore": "docs/**/*.js"
  }

UPD :看起来这是最受欢迎的mochajs功能之一 - https://github.com/mochajs/mocha/issues/1577

尝试将'!docs/**/*.js'添加到测试命令中。像

cross-env NODE_ENV=test ./node_modules/.bin/mocha 
    --timeout 15000 --ui bdd --reporter spec --colors 
    --compilers js:babel-core/register 'server/v1/tests/user.test.js' '!docs/**/*.js' 
    --recursive

答案 1 :(得分:0)

问题来自于我忘记从我的index.route.js中删除了一些从位于docs目录中的旧xxx.route.js导入的... --recursive选项正在获取它们并解析它们汇编...

通过删除有缺陷的docs目录找到此解决方案,然后获取另一种类型的错误:找不到!