我有一个在Javascript库上调用require的模块。我试图用Django-Pipeline压缩我的.js文件,但是在collectstatic之后,网页给出了这个错误:
UncaughtReferenceError: require is not Defined如果我不使用Django-Pipeline来压缩文件,那么使用collect-static可以很好地进行常规测试/部署。在不破坏依赖关系的情况下缩小我的.js文件的正确设置是什么-文档有点稀疏。django-pipeline是正确的选择吗?
编辑:我试图确保“必需的”模型首先在流水线中被压缩,但我似乎无法在不返回错误的情况下压缩从中调用require的模块。
发布于 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是正确的选择吗?”:)
发布于 2014-07-23 15:17:05
这是因为您的JS压缩器(例如YUGLIFY)也缩小了javascript变量名,所以require可能被命名为类似于x或y的名称。为了克服这个问题,在JS压缩器中设置适当的选项,不要缩小变量名。
http://django-pipeline.readthedocs.org/en/latest/compressors.html#pipeline-yui-js-arguments
对于Yuglify,这个参数将是mangle:False,它将停止破坏名称。
发布于 2014-07-01 15:33:09
也许是PIPELINE_DISABLE_WRAPPER干的。尝试将其设置为True。
请参阅https://django-pipeline.readthedocs.org/en/latest/configuration.html#wrapped-javascript-output
https://stackoverflow.com/questions/24500988
复制相似问题