首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么Babel 7不编译node_modules文件?

为什么Babel 7不编译node_modules文件?
EN

Stack Overflow用户
提问于 2019-02-20 22:36:44
回答 1查看 8.3K关注 0票数 13

我在IE11 SCRIPT1002中有错误:语法错误(类语法问题)。我的两行代码:

代码语言:javascript
复制
import { struct } from 'superstruct';
console.log('finished');

我不希望我babel7将类编译成ES5代码

我试过写.babelrc文件:

代码语言:javascript
复制
 {
  "presets": [
    [
      "@babel/preset-env",
      {
        "targets": {
          "ie": "11"
        }
      }
    ]
  ]
}

而且https://babeljs.io/docs/en/babel-plugin-transform-classes也没有修复

插件更新:我尝试过使用@babel/-preset-es2015来转换ES5代码中的类,但是这个包在babel7中被弃用了

请帮帮我

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-01 04:26:00

为了在Babel 7中转换node_modules和子包,您需要使用babel.config.js文件而不是.babelrc文件。

请参阅project-wide configuration上的此issue comment和巴别塔文档。具体来说

在Babel 7.x中,Babel有一个“根”目录的概念,默认为当前工作目录。对于项目范围的配置,Babel将自动在此根目录中搜索"babel.config.js“。

..。

因为项目范围的配置文件与配置文件的物理位置是分开的,所以它们非常适合必须广泛应用的配置,甚至允许插件和预设轻松地应用于node_modules或符号链接包中的文件,这在Babel 6.x中传统上很难配置。

它的不足之处在于,.babelrc用于本地项目文件转换(不包括node_modules),而babel.config.js应该被认为是整个项目范围的,并将在捆绑时应用于包依赖项(node_modules)。这有点令人困惑,但希望这能有所帮助!

编辑

这里有一些关于完整的项目配置的更多信息,以便使用webpack构建您的示例文件。请注意,如果您在这里使用.babelrc而不是babel.config.js,它将无法工作。运行webpack-cli会生成一个不使用script.out.js关键字的脚本类。

script.js

代码语言:javascript
复制
import { struct } from 'superstruct';
console.log('finished');

babel.config.js

代码语言:javascript
复制
module.exports = {
    "presets": [
        [
            "@babel/preset-env",
            {
                    "targets": {
                    "ie": "11"
                }
            }
        ]
    ]
};

webpack.config.js

代码语言:javascript
复制
module.exports = {
    entry: './script.js',
    output: {
        path: __dirname,
        filename: 'script.out.js',
    },
    module: {
        rules: [ {
            test: /\.m?js$/,
            use: {
                loader: 'babel-loader'
            }
        } ]
    }
}

包依赖项

代码语言:javascript
复制
"@babel/core": "^7.3.4",
"@babel/preset-env": "^7.3.4",
"babel-loader": "^8.0.5",
"superstruct": "^0.6.0",
"webpack-cli": "^3.2.3"
票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54788809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档