Reactjs Babel无法从父目录传输文件

Reactjs Babel无法从父目录传输文件,reactjs,mocha.js,babeljs,es6-modules,Reactjs,Mocha.js,Babeljs,Es6 Modules,如何让babel传输不在当前(根)目录中的文件 以下是我的项目结构: |-project |build |-node_modules -.babel.rc -package.json |src |test 我的源文件在“src”中,我的测试文件在“test”中 我想从我的包json脚本运行mocha测试。我使用babel动态传输我的src文件(ES6,React) 这是我的package.json:

如何让babel传输不在当前(根)目录中的文件

以下是我的项目结构:

|-project
    |build  
        |-node_modules
            -.babel.rc
            -package.json
    |src
    |test

我的源文件在“src”中,我的测试文件在“test”中

我想从我的包json脚本运行mocha测试。我使用babel动态传输我的src文件(ES6,React)

这是我的package.json:

"scripts": {
    "test": "mocha --require @babel/register '../test/**/*Test.js'"
}
"test": "NODE_PATH=$PWD/node_modules:$PWD/../src/ mocha --require babelRegister.js ../test/**/*.spec.js"
及.法改会:

{
    "presets": [
        "@babel/preset-env",
        "@babel/preset-react"
    ]
}
但当我运行纱线测试时,我得到如下错误消息:

/src/App.spec.js:1
(function (exports, require, module, __filename, __dirname) { import React from 'react';
                                                              ^^^^^^

SyntaxError: Unexpected token import

我尝试了milion-config组合,但没有任何效果,我不想在项目根目录中有package.json和babel-config文件(这是有效的),并且我不知道如何在不改变项目结构的情况下告诉babel要传输什么。

从您发布的错误来看,您的babel配置似乎无法处理jsx语法。您可以通过安装
@babel/plugin-transform-react-jsx
插件来解决这个问题

并对其进行如下配置:

.babelrc

{
  ...
  "plugins": ["@babel/plugin-transform-react-jsx"]
}

我终于找到了这个解决方案:

package.json:

"scripts": {
    "test": "mocha --require @babel/register '../test/**/*Test.js'"
}
"test": "NODE_PATH=$PWD/node_modules:$PWD/../src/ mocha --require babelRegister.js ../test/**/*.spec.js"
babelRegister.js:

require('@babel/register')({
    extends: './.babelrc',
    ignore:  [/node_modules/],
});

必须同时设置“扩展”和“忽略”,否则它将不起作用。看起来很粗糙,但我没有找到更好的解决方案。

这没有帮助,在任何jsx之前,它会在导入时中断。问题是我的源文件不在同一目录中。当我把它放在同一个文件夹,它的工作,买我的项目有不同的结构,我想找到这个文件结构的解决方案。