gpt4 book ai didi

webpack - 尝试使用 Webpack 构建 AMD 模块 — 出现 "Cannot resolve module ' 导出'“错误

转载 作者:行者123 更新时间:2023-12-02 16:41:14 24 4
gpt4 key购买 nike

我正在尝试在一个使用 AMD 模块和 Require.js 的项目中引入 Webpack。项目结构的相关部分是这样的:

enter image description here

(即项目根文件夹包含一个 js 文件夹,其中包含所有应用程序脚本,其入口点是 main.js,还有一个 tools 文件夹,其中包含 npm_modules 和我正在构建的 gulp 任务)

(是的,我知道在项目的根目录中包含 npm_modulesgulpfile 会更简单,但这就是我的结构)

所以我试图从应用程序划分的 AMD 模块中构建一个 js 包。为了简单起见,假设 main.js 文件包含以下代码:

define([
'jquery'
], function (
$
) {
'use strict';

console.log($);
});

这意味着我需要导入jquery来自./js/libs/vendor/jquery/dist/jquery.js

这是我编写的 webpack 配置(树形图上的 webpack.js 文件):

var path = require('path');

var appModulesPath = path.resolve('../js'); // gulpfile’s process is run in ./tools folder
var nodeModulesPath = path.join(__dirname, '..', 'node_modules');
console.log(appModulesPath, ' and ', nodeModulesPath); // I confirm that paths are correct

module.exports = {
context: path.join(__dirname, '../../'),
debug: false,
resolve: {
root: [appModulesPath, nodeModulesPath],
alias: {
'jquery': 'libs/vendors/jquery/dist/jquery',
},
extensions: ['.js']
},
entry: ['./js/main'],
output: {
path: path.join(__dirname, '../../js'),
filename: 'bundle.js'
},
module: {
loaders: [
{test: /jquery/, loader: 'exports?$'},
]
}
};

但是当我尝试运行该任务时,出现以下错误:

ERROR in ../js/main.js
Module not found: Error: Cannot resolve module 'exports' in /path/to/project/root/folder/js
@ ../js/main.js 1:0-9:2

如果我正确理解错误,Webpack 会尝试使用 exports-loader 但失败。但我已经安装了它,它位于 node_modules 中文件夹。是不是Webpack不知道去哪里找node_modules ?但是我正在解析配置中的根目录,当我注销我传递给 resolve.root 的路径时,它们是:/path/to/project/root/js/path/to/project/root/tools/node_modules 。为什么 Webpack 不选择 exports-loader起来?

我没有主意了。能否请你帮忙?

最佳答案

呸!花半个小时描述问题,然后拼命寻找答案! :-)

解决方案是使用 resolveLoader .

感谢this Github 上的讨论。

关于webpack - 尝试使用 Webpack 构建 AMD 模块 — 出现 "Cannot resolve module ' 导出'“错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34701156/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com