【问题标题】:Babel won't compile a file when there's a nested package.json file当有嵌套的 package.json 文件时,Babel 不会编译文件
【发布时间】:2019-03-25 14:46:56
【问题描述】:

我正在使用 WebPack、Babel 和 React。我有一个像下面这样的文件夹结构

node_modules/
.babelrc
package.json
    SomeThirdPartyFolder/
        node_modules/
        package.json  
        src/
           FileA.js

我想使用具有 jsx 内容的 FileA,但是它表现得好像 Babel 不存在,即它在下面产生了编译错误

  return (
      <div className etc

如果我删除 SomeThirdPartyFolder 中的 package.json,那么它会编译

显然这不是真实情况,但我想了解这里发生了什么

【问题讨论】:

  • 感谢您的链接。似乎我想将文件相关的 .babelrc 文件转换为项目范围的 babel.config.js。我已经在上面添加了
  • @tony 创建问题的答案 - 不要将答案放在问题中:P
  • loganfsmyth 通过提供指向文档相应部分的链接来回答这个问题,但他将其作为评论。如果他将该评论添加为答案,我会将其标记为答案,否则我将为他添加该评论
  • 你可以自己添加,不用担心:)

标签: node.js reactjs webpack babeljs


【解决方案1】:

(基于 loganfsmyth 的 cmets)

我已将 .babelrc 文件转换为 babel.config.js 文件,现在它似乎可以工作了。 .babelrc 文件是

{
    "presets": [
        "@babel/preset-env",
        "@babel/preset-react"
    ],
    "plugins": [
        [
            "@babel/plugin-proposal-class-properties",
            {
                "loose": true
            }
        ]
    ]
}

而替换文件是

module.exports = function (api)
{
    api.cache(true);

    const presets = [
        "@babel/preset-env",
        "@babel/preset-react"
    ];
    const plugins = [
        [
            "@babel/plugin-proposal-class-properties",
            {
                "loose": true
            }
        ]
    ];

    return {
        presets,
        plugins
    };
}

【讨论】:

    猜你喜欢
    • 2018-06-11
    • 2020-05-13
    • 2017-09-24
    • 2019-08-15
    • 2017-09-26
    • 2022-01-16
    • 2019-07-14
    • 1970-01-01
    • 2018-12-29
    相关资源
    最近更新 更多