【问题标题】:NPM install with jquery giving errors? Define is undefined?NPM安装与jquery给出错误?定义未定义?
【发布时间】:2018-03-07 00:43:12
【问题描述】:

我使用 NPM 安装了 jquery,并尝试将其合并到现有网页中。

在控制台中,我看到以下错误:

在我的代码中,我有一个这样的骨架:

<!DOCTYPE html>
    <html lang='en'>
        <head>
            <title></title>
            <link rel='stylesheet' type = 'text/css' href='css/' />
            <meta name="viewport" content="width=device-width,initial-scale=1.0">
            <meta charset="UTF-8">
         </head>
         <body>
              <script type='text/javascript' src='node_modules/jquery/src/jquery.js'></script>
      <script type= 'text/javascript' src='javascript/script.js'></script>
        </body>
    </html>

查看文件本身和控制台中的错误,我看到以下两种方式都反映了:

我对定义语句不是很熟悉,但从我在谷歌上爬下看到的情况来看。看来我需要安装像 webpack 这样的捆绑程序?

但我觉得这对于简单地将 jQuery 添加到没有 cdn 的项目中是不必要的。

我是不是找错树了?还是这是一个常见问题?

【问题讨论】:

  • 我认为你必须清楚一点?如果您只想将它​​包含在客户端代码中,为什么还要使用 NPM 安装 jQuery?您只需要一条到文件的静态路由?
  • 我不太了解使用NPM在网页上安装资源,但如果你只需要jQuery,你为什么要使用NPM?您可以将 jQuery 作为静态文件托管,甚至可以使用 CDN - 将您的 jQuery 脚本标签替换为这个标签以使用 Google 的 CDN:&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"&gt;&lt;/script&gt;
  • 您应该包含一个单文件版本 (jquery.com/download) 或使用 Browserify 或 Webpack 等模块工具。
  • 但是 NPM 会为 服务器端 安装模块,就像在 Node.js 中一样。当您想要包含脚本客户端时,您所要做的就是链接到该脚本。当然,使用 Node,您首先必须使用一些东西来获取指向静态文件的链接才能工作,通常称为静态路由,并且有很多模块可以做到这一点。
  • 问题是您从客户端引用服务器文件,node_modules 文件夹不能(或至少不应该)公开访问。如果你使用 NPM,你应该考虑使用像 webpack 这样的模块打包器。或者查看像 Bower 这样的客户端包管理器来管理您的客户端依赖项。

标签: javascript jquery node.js npm


【解决方案1】:

使用npm install jquery 是您在服务器本身上使用use jquery with node.js 的方式。

这听起来不像是您想要做的 - 而是您想在节点服务器本地提供的网页上使用它。为此,请手动 download jQuery 并将其包含在您的站点文件结构中。

 - index.html
 - /scripts
   - jquery-3.2.1.min.js

然后在你的 HTML 中本地引用它:

<script src="scripts/jquery-3.2.1.min.js"></script>

【讨论】:

  • 我当时很笨,是在一个山洞里而不是在树上。谢谢你在一只叫 webpack 的熊吃掉我之前救了我。
  • 当然,如果你没有合适的路线,这根本行不通。 Node 默认不提供静态文件。
  • 我没有做任何路线的事情。但是直接使用script type='text/javascript' src='javascript/jquery-3.2.1.min.js'&gt;&lt;/script&gt; 安装下载然后运行我的http 服务器不再显示错误。再说一次,我没有过多地扩展它。只是几个 dom 遍历和事件监听器。我将对如何使用路线进行一些研究。如果我遇到困难,我可能很快就会回来提出更多问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-26
  • 2014-12-26
  • 2022-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-10
相关资源
最近更新 更多