Ошибка веб-пакета при загрузке lodash при использовании внешнего конфига - PullRequest
1 голос
/ 13 мая 2019

Я пытаюсь изменить текущий проект с помощью веб-пакета.В моих сценариях я использую библиотеку lodash, но у меня также есть сценарии, которые не написаны на ES6, поэтому я загружаю lodash глобально, используя обычный тег сценария.Основываясь на документации веб-пакета, я добавил приведенную ниже конфигурацию в веб-пакет (https://webpack.js.org/configuration/externals/).

lodash : {
        commonjs: 'lodash',
        amd: 'lodash',
        root: '_' // indicates global variable
      },

. Я без проблем компилирую код, используя babel, но когда выполняется настоящий код, я получаю следующую ошибку "Ошибка типа".: Невозможно прочитать свойство 'forEach' из неопределенного "

Если я удаляю из файла оператор import _ from "lodash";, тогда проблема решена, и сценарий работает, как и ожидалось, _ в глобальном.

Но ожидалось, что это сработает и без добавления правильных внешних символов. В соответствии с примером веб-пакета для jquery

module.exports = {
  //...
  externals: {
    jquery: 'jQuery'
  }
};

Приведенный ниже код не изменится

import $ from 'jquery';
$('.my-element').animate(/* ... */);

В моем случае, почему это не так?работает? Есть предложения? идеи?

1 Ответ

0 голосов
/ 13 мая 2019

Я думаю, что нашел решение, после того, как я прочитал документацию снова и снова, я заметил это сообщение, которое также находится на желтой рамке

An object with { root, amd, commonjs, ... } is only allowed for libraryTarget: 'umd'. It's not allowed for other library targets.

Так что я изменил свою конфигурацию с

lodash : {
      commonjs: 'lodash',
      amd: 'lodash',
      root: '_' // indicates global variable
    }

до

lodash: '_'

и проблема решена, теперь работает как положено.Конечно, будет здорово, если я пойму, почему это было проблемой

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...