javascript 使用 browserify 填充 jQuery 插件
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/21265814/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Shim a jQuery plugin with browserify
提问by michael
Hi I'm using the grunt browserify task to setup my code, I have shimmed in jQuery and I'm now trying to include jquery.tablesorter.
嗨,我正在使用 grunt browserify 任务来设置我的代码,我在 jQuery 中进行了填充,现在我正在尝试包含 jquery.tablesorter。
Can jquery plugins be used with browserify in this way?
jquery 插件可以通过这种方式与 browserify 一起使用吗?
shim: {
jquery: {
path: 'lib/bower/jquery/jquery.js',
exports: '$'
},
'jquery.tablesorter': {
path: 'lib/bower/jquery.tablesorter/js/jquery.tablesorter.js',
exports: 'tablesorter',
depends: {
jquery: '$',
}
}
}
回答by Ian Lim
You may try by doing this:
您可以尝试这样做:
shim: {
jquery: {
path: 'lib/bower/jquery/jquery.js',
exports: '$'
},
'jquery.tablesorter': {
path: 'lib/bower/jquery.tablesorter/js/jquery.tablesorter.js',
exports: null,
depends: {
jquery: '$',
}
}
}
If the above is not working, you can try this:
如果上述方法不起作用,您可以尝试以下方法:
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',
}
}
}
回答by Andriy Lach
Maybe you dont need to use "browserify-shim" section in package.json if you use this extention.
如果您使用此扩展名,也许您不需要在 package.json 中使用“browserify-shim”部分。
You can do like here Using Browserify with jQuery Plugins
你可以像这里一样使用 Browserify 和 jQuery 插件
I've tried it and it works.
我试过了,它有效。
Example
例子
package.json
包.json
"browserify": {
"transform": ["browserify-shim"]
},
"browser": {
"jQuery.translit": "./public_html/js/vendor/jquery/jquery.translit.js"
},
"browserify-shim": {
"jQuery": "global:jQuery"
}
JS file:
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
回答by Thomas Modeneis
Its much easier to require global.JQuery and then require your module, it require no changes to package.json:
需要 global.JQuery 然后需要你的模块要容易得多,它不需要对 package.json 进行更改:
global.jQuery = require('jquery');
require('tipso');