用Babel-jest开玩笑的不在父文件夹中编译js

时间:2019-09-04 07:03:52

标签: javascript jestjs babel-jest

当我从文件夹中运行笑话并且某些文件位于父目录中时,我遇到了问题。

我的存储库看起来像这样:

|-common
|  |-.babelrc
|  |-src
|    |-js
|      |-someDependencies.js
|-app
   |-src
   | |-js
   |   |-someCodeIncludingSomeDependencies.js
   |-.babelrc
   |-package.json 
   |-webpack.config.js

我的Jest配置位于package.json中,并且为:

    "jest": {
        "moduleNameMapper": {
            "^vue$": "vue/dist/vue.common.js",
            "^@/(.*)$": "<rootDir>/src/$1",
            "^@Common/(.*)$": "<rootDir>/../common/src/$1"
        },
        "moduleFileExtensions": [
            "js",
            "vue"
        ],
        "snapshotSerializers": [
            "jest-serializer-vue"
        ],
        "transform": {
            "^.+\\.js$": "babel-jest",
            ".+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$": "jest-transform-stub",
            ".*\\.(vue)$": "vue-jest"
        },
        "collectCoverageFrom": [
            "**/*.{js,vue}",
            "!**/dist/**",
            "!<rootDir>/coverage/**",
            "!**/node_modules/**"
        ],
        "transformIgnorePatterns": [
            "<rootDir>/node_modules/"
        ]
    },

我从“ app”文件夹运行Jest。

我的问题是,当我运行Jest时,'common / src / js'中的代码不会被babel转换并产生错误:

...
SyntaxError: Unexpected token export

      3 | 
      4 | 
    > 5 | export default {}
        | ^
...

2 个答案:

答案 0 :(得分:0)

  

Babel 7.x的新功能,Babel的概念是“根”目录,默认为当前工作目录。

有关更多信息,您可以阅读here

只需在root文件中指定.babelrc属性即可指向父文件夹,也可以将.babelrc文件移至该父文件夹。

答案 1 :(得分:0)

我解决了将'.babelrc'配置文件更改为'babel.config.js'文件的问题...