Drupal 8 jQuery 冲突
Drupal 8 jQuery conflict
在我的 Drupal 8 项目的前端部分,我有几个 javascript 模块使用 Browserify(和 gulp)链接在一起。
我在几个模块中使用了Foundation,Foundation的制作方式是在$
对象上添加了一个foundation()
函数
这是我的 package.json 的摘录,我在其中声明了我的项目需要的垫片:
"browser": {
"jwplayer": "./libraries/utils/jwplayer/jwplayer.js",
"Foundation": "./node_modules/foundation/js/foundation/foundation.js",
"jquery": "./node_modules/jquery/dist/jquery.min.js",
"Backbone": "./node_modules/backbone/backbone.js",
"underscore": "./node_modules/underscore/underscore-min.js"
},
"browserify-shim": {
"jquery": "$",
"underscore": "_",
"jwplayer": "jwplayer",
"Foundation": {
"exports": null,
"depends": [
"jquery"
]
},
"Backbone": {
"exports": "Backbone",
"depends": [
"jquery",
"underscore"
]
}
},
"browserify": {
"transform": [
"browserify-shim"
]
}
当我退出 Drupal 管理员时一切正常。
虽然当我以管理员身份登录时,Drupal 在顶部添加了一个小任务栏,帮助您访问不同的访问菜单,以及一些其他有用的东西。
当 Drupal 这样做时,它使用自己的 jQuery 版本,并附加一定数量的插件。
现在,当我导出自己的 jQuery
并在我的 package.json 文件中将其声明为 $
时,我显然删除了 Drupal 的 jQuery
及其附带的所有插件,破坏了顶部栏。
我怎么可能告诉 Foundation 和每个需要 jQuery 的模块或插件使用 Drupal,而不是我的 node_modules文件夹?
环顾 Whosebug 我发现了这个 How do I use Browserify with external dependencies?
我替换了
"browserify-shim": {
"jquery": "$"
}
与
"browserify-shim": {
"jquery": "global:jQuery"
}
现在可以正常使用了。我还得做这件事有点奇怪
var $ = require('jquery');
虽然在我的模块中。如果有人对此有更多信息,我会洗耳恭听。
在我的 Drupal 8 项目的前端部分,我有几个 javascript 模块使用 Browserify(和 gulp)链接在一起。
我在几个模块中使用了Foundation,Foundation的制作方式是在$
对象上添加了一个foundation()
函数
这是我的 package.json 的摘录,我在其中声明了我的项目需要的垫片:
"browser": {
"jwplayer": "./libraries/utils/jwplayer/jwplayer.js",
"Foundation": "./node_modules/foundation/js/foundation/foundation.js",
"jquery": "./node_modules/jquery/dist/jquery.min.js",
"Backbone": "./node_modules/backbone/backbone.js",
"underscore": "./node_modules/underscore/underscore-min.js"
},
"browserify-shim": {
"jquery": "$",
"underscore": "_",
"jwplayer": "jwplayer",
"Foundation": {
"exports": null,
"depends": [
"jquery"
]
},
"Backbone": {
"exports": "Backbone",
"depends": [
"jquery",
"underscore"
]
}
},
"browserify": {
"transform": [
"browserify-shim"
]
}
当我退出 Drupal 管理员时一切正常。
虽然当我以管理员身份登录时,Drupal 在顶部添加了一个小任务栏,帮助您访问不同的访问菜单,以及一些其他有用的东西。
当 Drupal 这样做时,它使用自己的 jQuery 版本,并附加一定数量的插件。
现在,当我导出自己的 jQuery
并在我的 package.json 文件中将其声明为 $
时,我显然删除了 Drupal 的 jQuery
及其附带的所有插件,破坏了顶部栏。
我怎么可能告诉 Foundation 和每个需要 jQuery 的模块或插件使用 Drupal,而不是我的 node_modules文件夹?
环顾 Whosebug 我发现了这个 How do I use Browserify with external dependencies? 我替换了
"browserify-shim": {
"jquery": "$"
}
与
"browserify-shim": {
"jquery": "global:jQuery"
}
现在可以正常使用了。我还得做这件事有点奇怪
var $ = require('jquery');
虽然在我的模块中。如果有人对此有更多信息,我会洗耳恭听。