首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django +Django-使用Javascript "Require“的管道

Django +Django-使用Javascript "Require“的管道
EN

Stack Overflow用户
提问于 2014-07-01 08:45:13
回答 3查看 1.1K关注 0票数 5

我有一个在Javascript库上调用require的模块。我试图用Django-Pipeline压缩我的.js文件,但是在collectstatic之后,网页给出了这个错误:

代码语言:javascript
复制
UncaughtReferenceError: require is not Defined

如果我不使用Django-Pipeline来压缩文件,那么使用collect-static可以很好地进行常规测试/部署。在不破坏依赖关系的情况下缩小我的.js文件的正确设置是什么-文档有点稀疏。django-pipeline是正确的选择吗?

编辑:我试图确保“必需的”模型首先在流水线中被压缩,但我似乎无法在不返回错误的情况下压缩从中调用require的模块。

EN

回答 3

Stack Overflow用户

发布于 2014-07-26 00:56:13

根据我的经验,很难将require.js和django-pipeline结合起来(尽管它们都是很棒的项目)。

我曾经参与过一个项目,该项目的所有javascript都使用了require.js。我尝试使用django-pipeline,但无法让它与require.js一起正常工作。我们最终使用https://github.com/etianen/django-require来实现javascript,使用django-pipeline来实现css的最小化。

我建议要么尝试删除require.js并手动包含它正在使用管道导入的库,要么使用require.js来构建和缩小所有javascript资源。您可以添加一个构建所有javascript文件的新步骤,并直接在模板中或使用管道链接到这些文件。

很抱歉,这可能不是您答案的实际“解决方案”,但您确实问了“django-pipeline是正确的选择吗?”:)

票数 4
EN

Stack Overflow用户

发布于 2014-07-23 15:17:05

这是因为您的JS压缩器(例如YUGLIFY)也缩小了javascript变量名,所以require可能被命名为类似于xy的名称。为了克服这个问题,在JS压缩器中设置适当的选项,不要缩小变量名。

http://django-pipeline.readthedocs.org/en/latest/compressors.html#pipeline-yui-js-arguments

对于Yuglify,这个参数将是mangle:False,它将停止破坏名称。

票数 2
EN

Stack Overflow用户

发布于 2014-07-01 15:33:09

也许是PIPELINE_DISABLE_WRAPPER干的。尝试将其设置为True

请参阅https://django-pipeline.readthedocs.org/en/latest/configuration.html#wrapped-javascript-output

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24500988

复制
相关文章

相似问题

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