Как использовать веб-пакет с загрузкой jquery? - PullRequest
0 голосов
/ 19 сентября 2018

Скачал уменьшенные версии jQuery и jQuery_cookie.Попытка использовать webpack для них, но с ошибкой:

ОШИБКА в ./src/js/jquery_cookie.js
Модуль не найден: Ошибка: Не удается разрешить 'jquery'в 'C: \ Users \ MSI-PC \ Documents \ code_site \ server2 \ src \ js'
@ ./src/js/jquery_cookie.js 11: 2-29
@ ./src/js/index.js

index.js:

require('./jquery-3.2.1.min.js');
require('./jquery_cookie.js');

Сайт:

node_modules/
dist/
public/
src/
   css/
   ejs/
   js/
      index.js
      jquery-3.2.1.min.js
      jquery_cookie.js
server.js
package.js
webpack.config.js

webpack.config.js

var HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = { 
    entry: './src/js/index.js',    
    devtool: 'source-map',
    output: {publicPath: '/dist/'},  
    module: {
        rules: [{test: /\.ejs$/,
                 use: ['ejs-loader']}]
    },

    plugins: [
        new HtmlWebpackPlugin({
            template: './src/ejs/index.ejs',
            minify: {collapseWhitespace: true}
        })
    ]
}

Уже протестировано с ìmport jquery from './jquery-3.2.1.min.js', но это не сработало.

Также проверено на вставку в jquery_cookie в корне jQuery, но это тоже не сработало.

Последнее, что пытался добавить это window.$ = window.jQuery = require("jquery"); в мой index.js, но это также не удалось.

Редактировать

Редактировать, чтобы добавить новостную информацию.Протестировано установить jquery npm install jquery и потребовать его в мой index.js.Не получая ошибки, когда я запустил веб-пакет.Но другие мои API, такие как semantic-ui, jQuery-ui и другие файлы .js, использующие jQuery, не работали.Ошибка возврата в мою консоль:

ReferenceError: jQuery is not defined jquery-ui-1.12.1.min.js:14:3
ReferenceError: jQuery is not defined semantic.min.js:11:1
ReferenceError: $ is not defined client.js:96 

Также проверено с вставкой в ​​webpack.config.js загрузчик expose-loader, но также не удалось:

test: require.resolve('jquery'),
                use: [{
                    loader: 'expose-loader',
                    options: 'jQuery'
                },{
                    loader: 'expose-loader',
                    options: '$'
                }]

с плагином:

new webpack.ProvidePlugin({
            $: "jquery",  
            jQuery: "jquery" 
        })

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Я считаю, что проблема здесь: https://github.com/carhartl/jquery-cookie/blob/master/src/jquery.cookie.js#L14

jquery_cookie пытается require('jquery'), но у вас его нет в node_modules.Вы должны установить его:

npm i jquery

Эта ошибка больше не должна появляться.

PS Возможно, существует решение с использованием webpack 'resolve.alias иличто-то похожее для того, чтобы использовать ваш файл при запросе require('jquery'), но я не вижу причин для того, чтобы не делать обычный npm install в пользу локально загруженного файла jquery.Не стоит хлопот.

0 голосов
/ 19 сентября 2018

Вам не нужен веб-пакет, чтобы использовать jquery.Просто используйте тег script и укажите на свою библиотеку.

Лучшее место для его вставки - до конца вашего тега body.

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Учебное пособие: https://www.w3schools.com/jquery/jquery_get_started.asp

Подробнее: https://jquery.com/download/

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