【问题标题】:Getting the path of a node module in a view在视图中获取节点模块的路径
【发布时间】:2018-12-05 03:37:24
【问题描述】:

我是使用 NodeJS 的初学者。我正在为video-js 使用一个名为videojs-playlist 的插件。文档说要像这样包含它:

<script src="path/to/video.js/dist/video.js"></script>
<script src="path/to/videojs-playlist/dist/videojs-playlist.js"></script>

如果不是root/node_modules 或类似的东西,path/to 究竟应该是什么?我应该如何从 ejs 视图访问这些文件?我已经使用 npm 安装了 video-jsvideojs-playlist

现在我的页面上出现重定向错误,因为它没有从我尝试过的路径中找到文件。

【问题讨论】:

    标签: node.js npm video.js


    【解决方案1】:

    如果路径的开头没有/,则路径相对于&lt;script&gt;标签所在的文件;否则,它是相对于站点根目录的——这可能意味着不同的事情,具体取决于您是否/如何捆绑/部署您的 javascript。

    对于一个简单的情况,如果您在 index.html 中有脚本标签,并且您将 video.js 复制到与 index.html 相同的目录中,您将通过以下方式引用:

    &lt;script src="video.js"&gt;

    如果您使用 Node 在您的个人计算机上进行测试,您可以引用一个相对于您的 HTML 文件和node_modules 目录的文件;但是,在部署和管理实际应用程序的情况下,这并不是最好的。

    Node 为您提供 require() 以从您已安装的依赖项中导入模块,而无需指定它们的确切位置和目录结构,但看起来这个特定的插件在这里可能没有给您带来那么方便。

    您似乎需要一个捆绑器。 webpack 是一种广泛使用且有据可查的打包工具,但还有其他一些工具,例如 parcelFuseBox。这些都可以满足您的需求。

    这些工具很可能是videojs-playlist README on GitHub 在他们所说的时候所指的:

    使用您选择的工具在您的网站上包含 videojs-playlist。

    在其他功能中,这些工具可以从您的 node_modules 依赖项之一中获取文件,并“捆绑”相对于您的 javascript 应用程序(无论您想要什么),这样您就不必随身携带一些预安装的巨大的node_modules 目录随处可见——你只需要随身携带你需要的东西,并按照你想要的方式构建它。

    【讨论】:

      猜你喜欢
      • 2017-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-20
      • 1970-01-01
      • 1970-01-01
      • 2020-05-21
      相关资源
      最近更新 更多