【问题标题】:My own module not transpiled correctly when imported from node_modules从 node_modules 导入时,我自己的模块未正确转译
【发布时间】:2019-01-19 13:29:53
【问题描述】:

我向 npm 发布了一个简单的插件,我用 ES6 编写并使用 Webpack 和 Babel 对其进行了转译。后来我在另一个 ES6 项目中使用了这个插件。

我正在使用一个简单的导入语句:

import myplugin from 'myplugin';

导入成功,但未在最终输出中转译。我在输出的 js 文件中看到了实际的 ES6 代码。谁能指出这背后的原因是什么?

插件代码被直接转译到它自己的项目中。

【问题讨论】:

  • 如果你在包文件夹中有.babelrc,它将覆盖你的项目设置
  • 但我在包和我的项目中都有相同的设置
  • 这是我的第一个猜测,没有工作演示很难帮助,这将显示构建失败

标签: webpack import ecmascript-6 babeljs


【解决方案1】:

我没有太多关于您的 webpack.config.js 的信息,但我建议在您的 babel 加载程序规则下使用 include 而不是 exclude

module: {
    rules: [
        {
            test: /\.js$/,
            include: [
                path.resolve(__dirname, 'src'),
                path.resolve(__dirname, 'node_modules/myplugin'),
            ],
            use: {
                loader: 'babel-loader',
                query: {
                    presets: ['env']
                }
            }
        }
    ]
}

【讨论】:

  • 感谢您的回答,这行得通!但是,我的方法实际上是错误的。我们不应该编译 node_modules。我所做的是我更改了我的 webpack 配置,将我的代码重新编译为库 (umd),并将 package.json 中的主文件更改为指向已编译的代码而不是源代码,并且它有效。不过还是谢谢啦! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-14
  • 1970-01-01
  • 1970-01-01
  • 2022-12-12
  • 2018-06-21
  • 1970-01-01
  • 2016-05-31
相关资源
最近更新 更多