jquery - 为什么通过 npm 安装语义 UI 会错过 jQuery 并向其抛出引用错误?

标签 jquery node.js windows npm semantic-ui

你好,

我正在尝试使用来自 node.js 的 npm 在 Windows 10 PC 上安装 CSS 框架“语义 UI”。

我关注了 official install-instructions仔细。

  1. 我已经使用 official Windows Installer 安装成功的 node.js (v4.0.0) .
  2. 在 Windows cmd 中键入 npm install -g gulp 以安装 gulp (npm v2.14.2)。
    • 我第一次遇到错误 ECONNRESET,我 could solve .至此 gulp 全局安装成功。
  3. 至少我已经尝试过几次使用此代码安装语义 UI:

    npm install semantic-ui --save cd语义 一口气构建
    哪个在中途起作用 - WARN peerdependencies结果是缺少依赖包jQuery。但我仍然能够使用 gulp build 构建我全新安装的默认语义 UI 框架。

我说它在我的 Windows 10 系统上工作了一半,而且当我尝试调用默认模板的本地文件副本时也是如此 Fixed Menu我进入 google chrome 开发者工具时出现以下错误:

Uncaught ReferenceError: jQuery is not defined / semantic.min.js:11

好吧,这只是一个未知的引用,但这让我找到了丢失的 jQuery 包。谷歌搜索后,我找到了一个 npm 包 npm-install-missing (我的困境的最佳结果)并在我的项目文件夹中尝试 - 没有任何反应,因为没有 package.json 依赖文件。

所以我通过 npm "project folder\node_modules\semantic_ui 深入我给定的项目结构并再次运行它。结果是 node_modules< 中每个包的完整包更新/em>-包含 jQuery 包的文件夹和一些其他内容:github、gulp-concat-filenames、gulp-debug、gulp-git、gulp-json-editor、gulp-prompt、gulp -tap、merge-stream、mkdirp 和 wrench。由于 Semantic UI 的依赖性,因此遗漏了 11 个包。

但是 jQuery ReferenceError 仍然可用。当您在官方网站上试用 google chrome 开发者工具时 semantic-ui.com/ ,它是用自己的框架构建的,所以你不会得到任何错误,尽管它们将 semantic.min.js 文件放在相同的默认目录结构 dist/semantic.min .js。好的,我的路径前面只有一个目录:semantic/dist/semantic.min.js - 但这是官方文档中的做法。

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

谢谢,
罗伯特

最佳答案

虽然语义 UI 需要 jQuery,但它不是 npm 要求。

澄清一下,jQuery 是一个客户端 JavaScript 库。使用它需要您将其 .js 文件包含在您网页上的 <script> 中。标签。你可以download从官方网站或use a CDN .

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

简而言之,如果gulp build为您工作,那么您就万事大吉了 - 您只需要两个文件是 semantic.csssemantic.js。确保 jQuery(在 jquery.com 上找到,不是使用 npm 安装的那个)也包含在您的网页中,就在 semantic.js 之前。所以你的“基本”HTML 文件应该看起来像这样(假设生成的 semantic.csssemantic.jsdist 文件夹中):

<!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>

关于jquery - 为什么通过 npm 安装语义 UI 会错过 jQuery 并向其抛出引用错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32577607/

相关文章:

jquery调整大小,保持评论相对于图像的位置

javascript - 我需要 jquery 中的脚本,使该页面成为浏览器中的默认主页网站

c++ - 如何从Windows系统证书库中的证书中获取公钥

c++ - Win32编程隐藏控制台窗口

jquery - 如何在不透明后获得真实的颜色值

javascript - jQuery 自动完成问题 : how to handle 'Not in list' case

node.js - 如何在所有 lambda 函数中共享公共(public)文件

node.js - Gulp安装: 'fs: re-evaluating native module sources is not supported' and node-sass errors

node.js - npm install dependencies 在带有共享文件夹的 vagrant ubuntu 中失败

c++ - 进程 ID 和进程名称