Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何配置Babel以正确处理多个文件夹?_Javascript_Node.js_Npm_Babeljs - Fatal编程技术网

Javascript 如何配置Babel以正确处理多个文件夹?

Javascript 如何配置Babel以正确处理多个文件夹?,javascript,node.js,npm,babeljs,Javascript,Node.js,Npm,Babeljs,我已经使用Babel一段时间了,它使用以下命令将我的ES Next代码正确地转换到dist文件夹: babel src --out-dir dist --source-maps --copy-files 到目前为止,我所有的Javascript代码都在src中,但现在我想将React视图移动到src旁边的views文件夹中。我将Babel CLI调用修改为: babel src views --out-dir dist --source-maps --copy-files 现在我的问题是,虽

我已经使用Babel一段时间了,它使用以下命令将我的ES Next代码正确地转换到
dist
文件夹:

babel src --out-dir dist --source-maps --copy-files
到目前为止,我所有的Javascript代码都在
src
中,但现在我想将React视图移动到
src
旁边的
views
文件夹中。我将Babel CLI调用修改为:

babel src views --out-dir dist --source-maps --copy-files
现在我的问题是,虽然文件被正确编译,但没有一个
import
s被正确编译。例如,在我的文件
Navigation.js
中,我有一个
import

import Permissions from "../src/utils/permissions";
这将转化为

var _permissions = _interopRequireDefault(require("../src/utils/permissions"));
巴贝尔跑完之后


当我使用多个源目录时,如何配置Babel来修复导入?

我不确定Babel是否能够自己完成这项工作。这是一个很好的翻译工具,但可以把它看作是一个忠实的翻译人员。据我所知,它将传输您的代码,但不会根据所需的输出位置和关系重新插入您的导入语句。因此,您有两种选择:

  • 如果仅使用babel,请维护源代码中的文件与所需输出之间的关系。例如,如果希望
    /src
    src/views
    中的所有文件都在
    dist
    中的同一级别结束,则可能需要如下文件夹结构:
  • 我知道这里的命名有点多余。但是使用
    babel src/src src/views--out dir dist--source maps--copy files
    ,您的所有文件都将在
    /dist
    中传输到同一级别,并且导入关系都将保持正确

  • 使用构建工具。Webpack是一个更加健壮的工具,它本身经常使用babel。Webpack足够智能,可以根据配置方式在捆绑代码中重新编写导入语句。这个问题回答得很好。Webpack本身就是一个世界,但如果您知道如何使用它,它的功能足以实现您想要的

  • 我希望有人会来告诉我我错了,并且有一些
    非常适合这个场景重写导入babel插件。这是希望。否则,我认为您必须进行重组,或者深入到webpack中。

    等等,webpack不是仅用于web吗?我相信是的。您没有指定您的项目不是web项目,所以我假设它是—我的错。这是一个什么样的项目?如果它不是一个网络项目,那么是的,我想webpack不会是一个选项。还有其他构建工具,如rollup、gulp、grunt等,虽然我对它们不太熟悉,但其中一个可能能够处理您的任务。谢谢,我澄清了我的问题。这是一个常规的服务器端节点项目。在做了一些研究后,看起来webpack确实可以用于构建节点项目。我个人从未做过,但这似乎是可能的。我猜这个答案的要点是对你原来的问题说“你不能”。你需要一个构建工具。再说一次,我希望我错了,但我从未见过巴贝尔一个人做你想做的事。
    /src
      - /src
      - /views