如何从网页和模板中引用NPM安装的库?

我已经安装了,比如jQuery:

npm install jquery 

现在我的网站了

 ROOT/node_modules/jquery/* 

子目录。

接下来做什么? 写吧

 <script src="/node_modules/jquery/src/jquery.js"></script> 

或者我可以做一些采取jquery.js出这个path和/或编码参考在一些便携式的方式?

例如,假设我正在使用Jade模板。 我只是写

 script(src="/node_modules/jquery/src/jquery.js") 

要很快回答你的问题:是的,你可以复制jquery.js并将其移动到你想要的任何文件夹中。 然后,你将不得不改变脚本元素的src属性,如下所示:

 <script src="/new/path/jquery.js"></script> 

但是,在生产环境中,您可能希望join所有js文件,然后只加载一些文件,如下所示:

 <script src="/path/libs.js"></script> 

其中libs.js以正确的顺序包含我们所有的依赖项。

你的问题的简短答案是:是的,你把它放在相对path上

<script src="/node_modules/jquery/src/jquery.js"></script>

详细说明使用NPM,它有以下几个方面的帮助

  • 保持代码之外的依赖关系。 所以在你的git仓库中,你可以忽略它们(节省空间和networking)。 另外一个库的改变是在一个地方完成的,而不是到处都是。
  • 您可以轻松地重新创build依赖关系。 如果你已经删除了依赖关系或者新build了repo,你可以运行npm install并更新所有依赖关系。
  • 自动依赖关系pipe理 – 如果一个程序包依赖于另一个程序包,并且在其更新的情况下,nom会自动pipe理所有依赖项。

所以,总之,您可以保存pipe理外部软件包。

现在在我们的代码中,可以按照以下方式使用它们

  1. 我们可以通过给出相对path来引用每个库。 这是直接的方法。
  2. Howewver,如果你想给别名的根path,你可以通过variables在build设者如吞拿鱼或networking包。
  3. 最好的方法是将它们捆绑为一个js文件,并将它们缩小并使用bundle.js。 例如,在networking包中,您可以在networking包configuration中提及所有这样的文件,如vendor.bundle.js并运行一次。 这将创buildvendor.bundle.js。 你可以使用这个包而不是jQuery。 好处是,当nompipe理较低级别的依赖模块时,可以将它们捆绑到另一个js中,这样会导致更小的单个文件,从而使性能更好。

如果您没有使用任何构build工具,那么您可以有一个脚本文件夹,您可以在其中手动复制所需的库。 这样你的源码本身就是你最终要部署的版本。 或者,如果您正在处理中型或大型项目,则可以采用更常用的方法,并使用像webpack,gulp或browserify这样的可以自动导入所有依赖关系的构build工具。 Webpack是伟大的项目可以为你做一些事情:

  • 可以将您的依赖关系导入到文件块中
  • 资产pipe理
  • 缩小你的依赖关系来减小尺寸
  • 编译编译为js和编译为css语言,如打字稿和sass
  • 提供热重新加载的开发服务器
  • 只有在运行时需要时才支持dynamic加载来下载js的部分

和其他许多人。 尽pipe它增加了很多复杂的代码。

对于小型项目,我认为最好是手动添加库并保持简单

亲爱的你在节点项目中所采取的依赖关系必须在Node_Modules中,并且你必须指定从Node_Module / dependency_path的依赖关系path,这将在项目开发和生产中更好。这可能对你有帮助