У меня есть модуль, который требует подчеркивания:
import _ from "underscore"
var numbers = [1, 4, 6, 7, 9, 3, 22, 11, 54, 99, 100];
var evens = _.filter(numbers, x => x % 2 === 0);
document.getElementById('output').innerText = evens;
Это отлично работает в моей задаче gulp:
gulp.task('process-scripts', function(cb) {
var builder = new Builder('Scripts', 'Scripts/config.js');
builder.buildStatic('main.js', 'app/main.min.js', { minify: true });
cb();
});
И с этим тегом сценария:
<script src="/app/main.min.js"></script>
Проблема в том, что я хочу вытащить подчеркивание в свой собственный скрипт. Поэтому я изменил свою задачу gulp на:
gulp.task('process-scripts', function(cb) {
var builder = new Builder('Scripts', 'Scripts/config.js');
builder.buildStatic('underscore', 'app/vendor.min.js', { minify: true });
builder.buildStatic('main.js - underscore', 'app/main.min.js', { minify: true, globalDeps: {underscore: '_'} });
cb();
});
При этом я получаю символ подчеркивания, извлеченный из основного пакета и помещаемый в пакет поставщика. В нижней части файла main.min.js пакет создает следующий код:
(function(factory) {
factory(_);
});
И получаю ошибку: "Uncaught ReferenceError: _ не определено"
Я попробовал то же самое, используя jQuery вместо подчеркивания, и это сработало просто отлично. При просмотре кода я заметил, что при вызове кода в нижней части main в объекте окна было найдено $
, поэтому ошибки не было.
Как я могу заставить основной модуль распознавать подчеркивание в сценарии поставщика?
jspm install underscore
. Он находится в объекте карты config.js как: .. ., map: {подчеркивание: npm:[email protected]}, ... - person M Falanga   schedule 07.10.2015