[英]Can't find jquery when using Browserify and separating common libs
我在Express應用程序中繼承了一個大的Gulpfile,該應用程序有兩個步驟:
build-common- lib-組合並縮小jQuery和下划線之類的通用庫,使其成為“ common.min.js”
構建 -瀏覽器在“ js / modules / *。js”全局文件中瀏覽js文件,但不包括“ build-common-lib”步驟中的任何模塊,例如“ contact.js”
在這一點上,在瀏覽器化之前包含的所有contact.js
是:
var $ = require('jquery');
我在結束body標簽之前加入了common.min.js
,然后是contact.min.js
。 我遇到的問題是:
Uncaught Error: Cannot find module 'jquery'
如果我自行瀏覽器ifycontact.js:
browserify -e contact.js -o contact.min.js
問題已解決,但完全破壞了分離公共庫的目的。
如何在contact.js
正確引用jQuery?
Gulpfile很大,因此在此省略了。 運行任務時我沒有收到任何錯誤,但是如果您需要查看任何部分,請告訴我。
我認為您面臨的問題是browserify會將捆綁文件中的每個文件包裝到其自己的IIFE(立即調用的函數表達式)中,因此,此var $ = require('jquery');
將僅在其自身上下文中有效(IIFE在build-common-lib IIFE內部產生)。
要解決此問題,請將jQuery顯式添加到window對象,以便其他IIFE可以訪問它。
嘗試這樣的操作(還取決於您要使用的別名):
window.$ = window.jQuery = require( 'jquery' );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.