为什么通过npm安装语义UI会忽略jQuery&;向它抛出引用错误?

为什么通过npm安装语义UI会忽略jQuery&;向它抛出引用错误?,jquery,node.js,windows,npm,semantic-ui,Jquery,Node.js,Windows,Npm,Semantic Ui,Hy 我正试图在Windows10PC上安装CSS框架“语义UI”,并使用node.js中的npm 我仔细地遵循了规则 我已使用安装成功的node.js(v4.0.0) 键入Windows cmdnpm安装-g gulp进行安装(npm v2.14.2)。 我第一次遇到一个错误ECONNRESET,我发现了它。因此gulp在全球成功安装 至少我尝试过几次使用以下代码安装语义UI: npm安装语义ui——保存 cd语义 狼吞虎咽 哪一个起到了一半的作用-&结果是缺少依赖项包jQuery。但我

Hy

我正试图在Windows10PC上安装CSS框架“语义UI”,并使用node.js中的npm

我仔细地遵循了规则

  • 我已使用安装成功的node.js(v4.0.0)
  • 键入Windows cmd
    npm安装-g gulp
    进行安装(npm v2.14.2)。
    • 我第一次遇到一个错误
      ECONNRESET
      ,我发现了它。因此gulp在全球成功安装
  • 至少我尝试过几次使用以下代码安装语义UI:

    npm安装语义ui——保存
    cd语义
    狼吞虎咽
    

    哪一个起到了一半的作用-&结果是缺少依赖项包jQuery。但我仍然能够使用
    gulpbuild
    构建新安装的默认语义UI框架

  • 我说它在我的Windows 10系统上运行了一半,但当我试图调用默认模板的本地文件副本时,我在google chrome developer tools中得到了以下错误:

    未捕获引用错误:未定义jQuery/semantic.min.js:11

    好的,这只是一个未知的引用,但这让我找到了丢失的jQuery包。在谷歌搜索之后,我找到了一个npm包(对于我的困境来说是最好的结果),并在我的项目文件夹中试用了它-没有发生任何事情,因为没有package.json依赖文件

    因此,我通过npm深入了解了我给定的项目结构“项目文件夹\node\u modules\semantic\u ui并再次运行。结果是node_modules-folder中的每个包都有一个完整的包更新,其中包含jQuery包和其他一些包:github、gulp concat文件名、gulp debug、gulp git、gulp json编辑器、gulp提示符、gulp tap、merge stream、mkdirp和扳手。因此,由于语义UI的依赖性,有11个包丢失

    但是jQuery ReferenceError仍然可用。当您在official上尝试google chromes developer tools时,它是使用自己的框架构建的,因此不会出现任何错误,尽管他们将semantic.min.js文件放在相同的默认目录结构dist/semantic.min.js中。好的,我的路径前面只有一个目录:semantic/dist/semantic.min.js——但在官方文档中是这样做的

    希望有人能帮助我使这个框架完全活跃起来。:)

    谢谢,

    Robert

    虽然jQuery是语义UI所必需的,但它不是npm所必需的

    为了澄清这一点,jQuery是一个客户端JavaScript库。使用它需要将其.js文件包含在网页的
    标记中。你可以从官方网站或网站下载

    这是相关的,但决不是同一件事。当您想要构建自己的jQuery文件时(即,当您想要进行一些更改或有一些特定要求时),可以使用此包—您通常不想这样做

    简言之,如果
    gulpbuild
    对您有效,那么您就万事大吉了——您只需要两个文件:semantic.css和semantic.js。确保jQuery(在jQuery.com上找到,而不是使用npm安装的)也包含在您的网页中,就在semantic.js之前。因此,您的“基本”HTML文件应该如下所示(假设生成的
    semantic.css
    semantic.js
    位于dist文件夹中):

    
    标题
    尸体在这里
    
    问题可能出在节点本身。原因可能是当jquery也希望插入具有相同名称的符号时,节点会插入额外的符号

    如此处所述:

    由于Electron的Node.js集成,有一些额外的 插入到类似DOM的模块中的符号,导出,需要。这 导致某些库出现问题,因为它们要插入 具有相同名称的符号

    但是如果您想保持使用Node.js和Electron的能力 API,在包含之前必须重命名页面中的符号 其他图书馆:

    window.nodeRequire=require;删除window.require;
    >删除window.exports;删除window.module;
    

    注意:在重命名和删除符号后,在脚本中非常重要。您需要使用新符号。因此,您可以使用
    nodeRequire
    来代替
    require
    。这将解决问题。我也遇到了同样的问题,使用electron开发桌面应用程序。这对我来说很好很好地解决了这个问题。这是一个常见的问题。在大多数依赖于node.js的解决方案中。当我使用bootstrap时,我也有过同样的问题。Jquery不起作用。这就是原因。这是解决方案。

    非常感谢@fstanis
    我明白了,在使用高级框架(如语义UI)和相关工具之前,我必须先学习基础知识。这节省了很多时间和精力^^就因为你在问题中提出了多少细节,我投了赞成票!
    <!doctype html>
    <html>
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
        <title>Title</title>
        <link rel="stylesheet" type="text/css" href="dist/semantic.css">
    </head>
    
    <body>
        Body goes here  
    
        <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
        <script src="dist/semantic.js"></script>
    </body>
    
    </html>
    
        <head> <script> window.nodeRequire = require; delete window.require;
        > delete window.exports; delete window.module; </script> 
         <script type="text/javascript" src="jquery.js"></script> 
        </head>