代码之家  ›  专栏  ›  技术社区  ›  Deadron

无法使babel加载程序应用于依赖项

  •  1
  • Deadron  · 技术社区  · 6 年前

    我的项目的一个依赖项是使用箭头函数,我似乎无法让babel loader传输外部依赖项。

    我的模块部分看起来像

    module: {
            rules: [
                {test: /\.(js|jsx)$/, loader: 'babel-loader'}
            ]
        }
    

    巴别塔

    {
      "presets": [
        "@babel/env",
        "@babel/react"
      ]
    }
    

    索引.js

    import superagent from 'superagent'
    
    superagent.get('http://www.google.com')
        .then(result=>console.log('done'))
        .catch(e=>console.error(e));
    

    在这种情况下,令人不快的依赖是超级代理

    我用显示问题的配置创建了一个最小回购 https://github.com/ksmith97/WebpackIssue

    我不知道这里还有什么可以尝试的

    2 回复  |  直到 6 年前
        1
  •  5
  •   Alexandre Borela    6 年前

    const path = require('path');
    
    module.exports = {
        entry: './index.js',
        mode: 'development',
        devtool: 'source-map',
        output: {
            path: path.resolve(__dirname, 'dist'),
            filename: 'bundle.js'
        },
        module: {
            rules: [{
                test: /\.(jsx?)$/,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: [
                            "@babel/preset-env",
                            "@babel/preset-react"
                        ]
                    }
                },
            }]
        }
    };
    

    这个问题也让我大吃一惊,但看看 docs 您将看到:

    一旦找到包含package.json的目录,搜索就会停止,因此相对配置只适用于单个包。

    node_modules ,他们都会有自己的 package.json 文件,这将使 .babelrc 节点\u模块

    加载程序配置没有此限制。

        2
  •  0
  •   leonprou    6 年前

    我克隆了你的项目并执行了 npm start -它将源代码绑定到 dist/bundle.js. then I ran this file with node dist/bundle.js`。明白了:

    Using browser-only version of superagent in non-browser environment
    Error: Browser-only version of superagent could not find XHR
    

    如果你想为nodejs使用超级代理,请阅读以下内容- https://github.com/visionmedia/superagent/wiki/SuperAgent-for-Webpack