Я пытаюсь представить Webpack в проекте, который использует модули AMD с Require.js. Соответствующая часть структуры проекта заключается в следующем:Попытка создания модулей AMD с помощью Webpack - получение «Невозможно разрешить ошибку модуля» Ошибка
(то есть корневой папки проекта содержит js
папку со всеми сценариями приложений, чья точка входа является main.js, а также tools
папку с npm_modules
и задача глотка, что я строй)
(и да, я знаю, что было бы проще иметь npm_modules
и gulpfile
в корне проекта, но это структура, которая у меня есть)
Так что я пытаюсь построить JS-пакет из модулей AMD, в которые приложение разделено. Для упрощения, скажем, файл main.js имеет следующий код:
define([
'jquery'
], function (
$
) {
'use strict';
console.log($);
});
, что означает, что мне нужно импортировать jquery
из ./js/libs/vendor/jquery/dist/jquery.js
Так вот WebPack CONFIG (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
?
Я вне идеи. Не могли бы вы помочь?
вы должны отметить свой собственный ответ как принято :) – Tieme
сделано :-) (wow, есть ограничение на то, как короткий комментарий может быть! Простой «сделанный» не разрезал) – azangru
Отлично! Ха-ха, да .., чтобы предотвратить: «Спасибо» – Tieme