【发布时间】:2017-05-14 05:49:04
【问题描述】:
所以我一直在互联网上搜索,试图找到解决这个问题的方法,但我找不到有效的解决方案。我目前正在使用最新版本的 Gulp 和 Browserify 为我正在开发的网站捆绑 JS。之前我们会将所有 JS 文件连接在一起,但我现在正在转向模块设置。
我遇到的问题是复制某些依赖项,在这个例子中,我将专注于 jQuery (v2.1.4)。这是我的设置:
main.js(在每个页面上加载)
window.jQuery = window.$ = require('jquery');
window.Vue = require('vue');
require('jquery-validation');
// More JS that loads on all pages
page.js(每个页面都有自己的 js 文件,用于与该页面相关的脚本)
require('remodal'); // This requires jQuery
// Rest of the JS for this page...
我遇到的问题是现在 jQuery 在两个 javascript 包中。使用 Browserify,我将 jQuery 标记为 page-speicific.js 的“外部”,它从脚本中删除了 jQuery,但我收到错误 Uncaught Error: Cannot find module 'jquery',我似乎找不到解决方案。
如果我用 Browserify “排除” jQuery,或者如果我在 require('remodal') 周围放置一个 try 块,我最终会得到 Uncaught TypeError: $(...).remodal is not a function。我猜是因为模块 remodal 需要 jQuery 并且它没有在那里加载,它没有看到它被设置为窗口,这就是执行失败的原因?
【问题讨论】:
-
排除或外部出现相同的错误:未捕获的错误:找不到模块“jquery”。如果我使用忽略,我会收到 $.map 不是函数的错误,因此它不会将 $ 解释为 jQuery。
标签: javascript jquery node.js gulp browserify