我正在制作一个电子应用程序。在index.htm文件的开头,我有以下几行:
<script>require('./js/jquery.min.js');</script>
<script>require('./js/popper.min.js');</script>
<script>require('./js/bootstrap.min.js');</script>
相应文件位于指定位置。加载前两个文件的操作正常,但是加载引导程序时,会发生以下错误:
Uncaught Error: Cannot find module 'jquery'
Require stack:
- D:\E\electron-quick-start-master\js\bootstrap.min.js
- D:\E\electron-quick-start-master\index.html
at Module._resolveFilename (internal/modules/cjs/loader.js:627)
at Function.Module._resolveFilename (C:\Users\Username\AppData\Roaming\npm\node_modules\electron\dist\resources\electron.asar\common\reset-search-paths.js:41)
at Function.Module._load (internal/modules/cjs/loader.js:531)
at Module.require (internal/modules/cjs/loader.js:685)
at require (internal/modules/cjs/helpers.js:16)
at D:\ElectronPlayground\electron-quick-start-master\js\bootstrap.min.js:6
at Object.<anonymous> (D:\E\electron-quick-start-master\js\bootstrap.min.js:6)
at Object.<anonymous> (D:\E\electron-quick-start-master\js\bootstrap.min.js:8)
at Module._compile (internal/modules/cjs/loader.js:786)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:798)
在这里遵循一些较旧的类似问题后,我尝试了以下方法:
<script>window.jQuery = window.$ = require('./js/jquery.min.js');</script>
<script>require('./js/popper.min.js');</script>
<script>require('./js/bootstrap.min.js');</script>
但是它什么也没有改变。有什么问题吗?
答案 0 :(得分:0)
该问题是由于未定义module
而未定义jQuery(在窗口中全局)而导致的,因此您无法访问jQuery变量,因为它实际上不存在,此问题是由于库中的以下if语句:
if ( typeof module === "object" && typeof module.exports === "object" ) {
// set jQuery in `module`
} else {
// set jQuery in `window`
}
您有两种方法可以解决此问题,它们既简单又直接-因为您只需使用返回值(库本身)声明jQuery
和$
全局变量即可。要求方法。
1。使用NPM修复
在节点命令提示符下使用以下命令将jQuery安装到项目中:
npm install jquery --save
现在在脚本标记(或js文件)中添加以下代码:
<script>window.$ = window.jQuery = require('jquery');</script>
2。修复jQuery库文件
如果您不使用NPM直接安装jQuery库,则意味着您的项目中只有jQuery文件。要在窗口中添加jQuery变量,请使用require和jQuery库的路径作为第一个参数:
<!-- If the require doesn't work, include first the jQuery file
<script src="jquery-3.0.0.min.js"></script>-->
<script>window.$ = window.jQuery = require('./jquery-3.0.0.min.js');</script>