【发布时间】:2015-03-28 02:08:36
【问题描述】:
在我的 Drupal 8 项目的前端部分,我有几个使用 Browserify(和 gulp)链接在一起的 javascript 模块。
在几个模块中我使用了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 文件夹中的那个?
【问题讨论】:
标签: javascript jquery drupal browserify shim