首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Django中使用节点模块?

如何在Django中使用节点模块?
EN

Stack Overflow用户
提问于 2020-08-24 05:33:29
回答 1查看 575关注 0票数 2

我希望在我的django项目中使用date-fns,但不完全确定如何进行-我不能依赖CDN,需要以某种方式安装它。我在根文件夹中运行了npm init,然后运行了npm install date-fns。这将生成一个node_modules文件夹和一个package.json文件。

不完全确定在此之后该如何处理。必要的步骤是什么?

我是否只需使用

代码语言:javascript
运行
复制
<script src="{% static 'node_modules/date-fns' %}"></script>

在我的base.html文件里?

EN

回答 1

Stack Overflow用户

发布于 2021-04-28 17:30:53

使用static模板运算符时使用的搜索路径在STATICFILES_DIR (docs)中的settings.py文件中定义。这将允许静态操作符查找库文件并生成URL。

但是,请注意,web服务器仍然需要从STATIC_URL定义的预期路径提供文件。项目根目录中的manage.py工具包含一个命令collectstatic,该命令可以将所有静态搜索目录复制到一个位置,从而使提供这些文件变得更简单。

还请注意,您显示了一个代码示例,它从script标记中将npm库目录作为脚本引用,但是浏览器将不知道如何从该目录中查找脚本。node通常使用库的package.json来查找入口点。有必要专门调出包中感兴趣的脚本文件。

一种选择是使用捆绑工具,如webpack或rollup,将所有资源收集到一个位置。

另一种选择是将node_modules路径添加到静态路径,可能带有前缀。它可能看起来像下面这样。

代码语言:javascript
运行
复制
STATIC_URL = '/static/'
STATIC_ROOT = 'dist/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
    # This defines a prefix so the url paths will become `/static/node_modules/...`
    ('node_modules', os.path.join(BASE_DIR, 'node_modules/')),
)

明确地包括index.js,而不仅仅是模板文件中的date-fns。

代码语言:javascript
运行
复制
{% load static %}
<!-- .... -->
<script src="{% static 'node_modules/date-fns/index.js' %}"></script>

如果从STATIC_ROOT收集和提供静态文件,则以下命令将把STATICFILES_DIRS内容收集到dist/static中。

代码语言:javascript
运行
复制
python manage.py collectstatic
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63552207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档