Подключить плагин jQuery с помощью браузера

Привет, я использую задачу grunt browserify для настройки своего кода, я переделал jQuery и теперь пытаюсь включить jquery.tablesorter.

Можно ли таким образом использовать плагины jquery с браузером?

shim: {
    jquery: {
        path: 'lib/bower/jquery/jquery.js',
        exports: '$'
    },
    'jquery.tablesorter': {
        path: 'lib/bower/jquery.tablesorter/js/jquery.tablesorter.js',
        exports: 'tablesorter',
        depends: {
            jquery: '$',
        }
    }
}

person michael    schedule 21.01.2014    source источник


Ответы (3)


Вы можете попробовать сделать это:

shim: {
    jquery: {
        path: 'lib/bower/jquery/jquery.js',
        exports: '$'
    },
    'jquery.tablesorter': {
        path: 'lib/bower/jquery.tablesorter/js/jquery.tablesorter.js',
        exports: null,
        depends: {
            jquery: '$',
        }
    }
}

Если вышеперечисленное не работает, вы можете попробовать это:

shim: {
    jquery: {
        path: 'lib/bower/jquery/jquery.js',
        exports: null
    },
    'jquery.tablesorter': {
        path: 'lib/bower/jquery.tablesorter/js/jquery.tablesorter.js',
        exports: null,
        depends: {
            jquery: 'jQuery',
        }
    }
}
person Ian Lim    schedule 22.01.2014
comment
Это не дает мне ошибки, но во время вызова require он дает мне пустой объект var $ = require('$'),sorter = require('jquery-tablesorter'); console.log($,сортировщик); // это консоль {} {} - person Kundu; 22.09.2014
comment
@kundu, могу я узнать, какую версию grunt-browserify вы используете? Это решение работает только для более ранней версии. - person Ian Lim; 23.09.2014
comment
@Lim Я использую браузер v5.9.1. Для более новой версии какой должен быть выход. - person Kundu; 23.09.2014
comment
посмотрите, полезна ли вам эта статья aeflash.com/2014- 05/grunt-browserify-2-x-update.html - person Ian Lim; 23.09.2014
comment
Откуда shim? Текущие документы по браузеру говорят использовать browserify-shim github.com/thlorenz/browserify-shim - person mikemaccana; 05.01.2015

Возможно, вам не нужно использовать раздел «browserify-shim» в package.json, если вы используете это расширение.

Вы можете сделать это здесь Использование Browserify с плагинами jQuery

Я пробовал это, и это работает.

Пример

пакет.json

"browserify": {
    "transform": ["browserify-shim"]
},
"browser": {
     "jQuery.translit": "./public_html/js/vendor/jquery/jquery.translit.js"
},
"browserify-shim": {
    "jQuery": "global:jQuery"
}

JS-файл:

var $ = require("jQuery"),
    translit = require("jQuery.translit"),  //don't use this variable      
    heading = require("./helper/heading.js");
$.transliterate("parameter"); //use as regular jQuery plugin instead
person Andriy Lach    schedule 16.03.2015
comment
Не элегантно, но я использовал этот трюк, и он работает. Вам не нужно назначать переменную, просто вызовите require("x") - person Sebastien Lorber; 15.04.2015
comment
Да, ты прав. Также решение от Ian Lim может быть лучше. - person Andriy Lach; 25.04.2016

Гораздо проще потребовать global.JQuery, а затем потребовать ваш модуль, он не требует изменений в package.json:

global.jQuery = require('jquery');
require('tipso');
person Thomas Modeneis    schedule 04.09.2016