node.js – 如何包括位于node_modules文件夹内的脚本?

我有一个关于将node_modules包含到HTML网站的最佳实践的问题。想象我有我的node_modules文件夹内的Bootstrap。现在对于网站的发行版本(实时版本),我如何包括位于node_modules文件夹内的Bootstrap脚本和CSS文件?将Bootstrap留在该文件夹中并执行类似于< script src =“./ node_modules / bootstrap / dist / bootstrap.min.js”>< / script>?或者我将不得不添加规则到我的gulp文件,然后将这些文件复制到我的dist文件夹?或者最好让gulp以某种方式从我的HTML文件中完全删除本地引导并将其替换为CDN版本?

解决方法

通常,您不想公开任何内部路径,以了解您的服务器如何结构化到外部世界。你可以在你的服务器中创建一个/ scripts静态路由,从它们发生驻留的任何目录中获取它的文件。因此,如果你的文件在“./node_modules/bootstrap/dist/”。然后,您网页中的脚本代码看起来像这样:

<script src="/scripts/bootstrap.min.js"></script>

如果你使用express和nodejs,静态路由就像这样简单:

app.use('/scripts',express.static(__dirname + '/node_modules/bootstrap/dist/'));

然后,来自/scripts/xxx.js的任何浏览器请求将自动从您的dist目录中获取

注意:较新版本的NPM将更多的东西放在顶层,而不是嵌套的那么深,所以如果你使用较新版本的NPM,那么路径名将不同于OP的问题和当前答案中指出的路径名。但是,概念仍然是一样的。你找到文件在你的服务器驱动器上的物理位置,你使用express.static()的app.use()来创建这些文件的伪路径,所以你不会暴露实际的服务器文件系统组织客户端。

如果你不想这样做一个静态路由,那么你可能最好只是将公共脚本复制到一个路径,你的Web服务器被视为/脚本或任何顶级名称要使用。通常,您可以将此复制作为构建/部署过程的一部分。

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...