【问题标题】:Best way to serve npm packages with django?用 django 提供 npm 包的最佳方式?
【发布时间】:2021-03-28 12:41:46
【问题描述】:

我使用 django 作为后端,并使用 npm 安装了一些 js 包。我目前正在通过允许 django 通过将 /node_modules 添加到 STATICFILES_DIRS 来访问这些包。这一直有效,但我必须进入 pacakge 并找到我要指向的 js 文件,然后使用 <script src="{% static ... 加载它。

这有点乏味,看起来有点“hacky”。我也无法弄清楚如何在我的 js 文件中使用导入/需要。有没有办法使用导入,或者我是否通过脚本标签加载了所有内容?我认为这是因为 django 不知道如何适当地为 npm 包提供服务?我对 webpack 进行了一些阅读,但我仍然不确定 webpack 是否可以解决我的问题。有什么建议吗?

【问题讨论】:

  • 您确实应该捆绑您的 JS 文件,而不是您当前使用的 hack。 Webpack 可能有点难以掌握,尤其是如果您不熟悉 JS 捆绑。我个人喜欢使用 ParcelJS,它根本不需要配置。但是,是的,无论使用什么工具,您都应该真正了解 JS 捆绑
  • @blex 你知道它是否与 django 项目兼容吗?我正在使用 django 模板,所以 html 不是纯 html
  • WebPack 或 ParcelJS、Rollup 或 Gulp 等捆绑程序可以独立于项目的其余部分使用。它们的方法各不相同,但过程是相同的:一旦你准备好投入生产,你 build 你的 JS,在适当的目录中(由 Django 公开)中的一个缩小文件)。并且您的模板引用了该缩小文件。您可以手动构建,或者,如果您有部署管道,则在管道中自动执行此操作
  • 关于如何使用 ParcelJS 和 Django 的好例子为零。应该是一个快速的小细节变成了一个长期无法回答的噩梦。

标签: javascript django npm webpack


【解决方案1】:

我建议学习/使用 Webpack。

我试图避免使用它,但它是您开发包中的一个很好的工具。使前端开发模块化和简单化。

【讨论】:

    猜你喜欢
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 2014-01-27
    • 2022-10-19
    • 2020-02-16
    • 2016-01-30
    • 1970-01-01
    相关资源
    最近更新 更多