Webpack - _ не определено

1

Когда я запускаю webpack, _ возвращается как undefined в окне: window._: Error: _ is not defined. Я думал, что добавление _ внутри плагинов откроет window. Непонятно ли мое понимание?

const webpack = require('webpack');

const plugins = new webpack.ProvidePlugin({
    $: "jquery",
    _: "underscore"
});

module.exports = {
    entry: {
        app: './src/main/app/components/main.module.js',
        vendor: [
            'jquery',
            'underscore'
        ]
    },
    output: {
        filename: './src/main/resources/dist/app/scripts/[name].bundle.js',
    },
    plugins: [plugins],
    devtool: 'inline-source-map'
};
  • 0
    такое $ undefined?
  • 0
    $ определяется, что является странной частью
Показать ещё 3 комментария
Теги:
webpack
underscore.js

3 ответа

1

Вы загрузили underscore.js в свой индексный файл?

<script src= 'https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore.js'></script>

1

providePlugin используется, чтобы сделать библиотеки доступными в контексте других модулей в пакете webpack. Например, это использование providePlugin:

const plugins = new webpack.ProvidePlugin({
  $: "jquery",
  _: "underscore"
});

разрешит доступ к jquery lib в ./src/main/app/components/main.module.js через переменную $.

Если вы хотите выставить jquery в окно как window.$, Вы можете использовать webpack expose -loader или просто обновить окно в своем файле входа (main.module.js):

window.$ = $; //$ is defined via providePlugin
window._ = _; //_ is defined via providePlugin
1

Вы пытаетесь добавить его как глобальную переменную? Попробуйте добавить это в файл.ts/.js:

window['_'] = require('underscore');

Ещё вопросы

Сообщество Overcoder
Наверх
Меню