我正在将使用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语句,那么它就会计算出如何在包中包含依赖项。
为了使webpack包含捆绑中的依赖项,是否需要额外的配置? webpack是否有可能不理解定义define(require =>
的箭头函数样式而不是define(function(require) {
?