首页 文章

Webpack不捆绑AMD模块中所需的文件

提问于
浏览
1

我正在将使用requirejs的现有网站迁移到webpack . 我以为我可以用webpack.config.js替换requirejs配置并完成它 . 但是,webpack不包含任何AMD模块所需的任何依赖项 . 我的所有模块都是以下形式:

define(require => {
    const dep1 = require('models/dep1');
    const dep2 = require('models/dep2');
    ...
    const Utils = {
        function doStuff() {
            ...
        },
    };

    return Utils;
});

这是我的webpack配置的简化版本:

const webpack = require('webpack');

const sourcePath = __dirname;
const outputPath = './dist';

module.exports = (env) => {
  return {
    context: sourcePath,
    entry: {
      app: './src/index.js',
    },
    output: {
      path: outputPath,
      filename: '[name].bundle.js',
      chunkFilename: '[id].[chunkhash].js',
    },
    module: {
      rules: [
        {
          test: /\.jsx?$/,
          exclude: /node_modules/,
          use: [
            'babel-loader',
          ],
        },
      ],
    },
  };
};

而我的.babelrc:

{
  "presets": [
    ["babel-preset-env", {
      "targets": {
        "browsers": [
          "last 2 Chrome versions",
          "last 2 Firefox versions"
        ]
      },
      "modules": false
    }],
    "react"
  ],
}

如果我从文件中删除了define包装器并用require语句替换require语句,那么它会计算出如何在bundle中包含依赖项 .

是否需要额外的配置才能使webpack包含捆绑中的依赖项?是否有可能webpack不理解定义 define(require => 的箭头函数样式而不是 define(function(require) {

1 回答

  • 1

    事实证明这是一个错误 . 我最终向webpack发送了拉取请求以修复它,并在3.9.0中发布 .

相关问题