当前位置: 首页 > 面试题库 >

如何包括位于node_modules文件夹内的脚本?

龚宏壮
2023-03-14
问题内容

我有一个关于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>

如果您对nodejs使用express,那么静态路由就这么简单:

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

然后,来自的所有浏览器请求/scripts/xxx.js都将自动从您的dist目录中获取__dirname + /node_modules/bootstrap/dist/xxx.js

注意:较新版本的NPM会将更多内容放在顶层,而不是嵌套得太深,因此,如果您使用较新版本的NPM,则路径名将不同于OP的问题和当前答案中指示的名称。但是,概念仍然相同。您可以找到文件在服务器驱动器上的物理位置,并app.use()使用它们express.static()来创建这些文件的伪路径,这样就不会将实际的服务器文件系统组织暴露给客户端。

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

如果只想在目录中公开一个特定文件,而不是在该目录中找到所有文件,那么可以为每个文件手动创建单独的路由,而不要使用express.static()诸如:

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

以及为此创建路线的代码

app.get('/bootstrap.min.js', function(req, res) {
    res.sendFile(__dirname + '/node_modules/bootstrap/dist/bootstrap.min.js');
});

或者,如果您仍想使用来描绘脚本的路由/scripts,则可以执行以下操作:

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

以及为此创建路线的代码

app.get('/scripts/bootstrap.min.js', function(req, res) {
    res.sendFile(__dirname + '/node_modules/bootstrap/dist/bootstrap.min.js');
});


 类似资料:
  • 问题内容: 假设我安装了项目包,其中包含要安装的模块。一段时间后,我发现我不需要某些特定的模块,并从中删除了对它的依赖。然后,我从中删除了一些其他模块,因为不再需要它们,而其他模块则被替换。 现在,我要清理文件夹,以便只有其中列出的模块可以呆在那里,其余的必须进入,如。我知道我可以手动将其删除,但希望为此可以使用糖功能。 问题答案: 我想你在找 此命令删除“外部”软件包。如果提供了软件包名称,则仅

  • 问题内容: 我正在从网上下载一个zip文件。它包含文件夹和文件。使用解压缩他们和。将文件名指定为。 所以我正在创造新的 但问题是它引发了异常:。我知道它正在创建子文件夹和。 我的问题是:如何通过路径上方创建包含子目录的文件? 问题答案: 用这个: 尽管您可以不检查结果而做,但是检查操作的返回值被认为是最佳实践。因此,首先检查现有目录,然后检查是否成功创建(如果尚不存在)。 参考: File.get

  • 本文向大家介绍Java删除指定文件夹下的所有内容的方法(包括此文件夹),包括了Java删除指定文件夹下的所有内容的方法(包括此文件夹)的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇Java删除指定文件夹下的所有内容的方法(包括此文件夹) 就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 每次我试图编译它来测试它不recongnise文件

  • 在一个项目中,我有3个src文件夹(src1、src2、src3)。我已经能够通过将文件夹合并到单个src中来编译它。 当我使用helper插件编译它并定义三个src文件夹时,我可以看到78个java文件正在编译,但在最终的包中只包含4个类文件。 “-X”没有用。