Dropzone 未定义,在 symfony 上使用 webpack

Dropzone is not defined, with webpack on symfony

看了各种讨论,不好意思重做一个话题,找了一整天不明白为什么没有定义Dropzone。

在我的控制台中,它始终是相同的语音... 未捕获的引用错误:Dropzone 未定义

我哪里错了?

<div action="{{path('document_create')}}" class="dropzone">
       <div class="fallback">
              {{ form_widget(form.file, {
                  'attr': {'type': 'file', 'name': 'file'}
              }) }}
       </div>
</div>

JS:

Dropzone.autoDiscover = false;

                $(function() {
                    //Dropzone class
                    var myDropzone = new Dropzone(".dropzone", {
                        url: "upload.php",
                        paramName: "file",
                        maxFilesize: 2,
                        maxFiles: 10,
                        acceptedFiles: "image/*,application/pdf"
                    });

                    $('#startUpload').click(function(){           
                        myDropzone.processQueue();
                    });
                });

我post我在symfony和webpack上战斗后找到的解决方案!

诀窍:(针对 Symfony 和 webpack)

1 / 安装 dropzone

2 / 将文件dropzone.js或dropzone.min.js留在node_modules中,不要碰它们。

3 / 创建一个 file.js,例如:myDropzone.js

4 / 在 myDropzone.js 中调用 Dropzone:

window.Dropzone = require('dropzone/dist/min/dropzone.min');

5 / 以及dropzone配置代码根据您的选择:

Dropzone.autoDiscover = false;

  $(function() {
      //Dropzone class
        $('.dropzone').dropzone({
          paramName: "file",
          maxFilesize: 2,
          maxFiles: 2,
          addRemoveLinks: true,
          acceptedFiles: "image/*,application/pdf"
      });
  });