我有一个关于将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服务器被视为/脚本或任何顶级名称要使用。通常,您可以将此复制作为构建/部署过程的一部分。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。