jQuery.Deferred异常:我不是函数TypeError:我不是函数

时间:2017-08-14 18:13:51

标签: javascript heroku zurb-foundation phoenix-framework brunch

我已将我的Phoenix应用程序的尸体部署到Heroku(Link),但在js控制台中有类似的警告和错误:

警告:

  

jQuery.Deferred异常:我不是函数TypeError:我不是   功能

错误:

  

未捕获的TypeError:我不是函数

在开发环境中,一切正常。

试图用Heroku运行早午餐构建重新编译早午餐,并尝试修改早午餐配置文件。在缩小之后看起来有些东西丢失或者输入错误的顺序。现在我被困住了。

有人可以帮助我吗?

早午餐-config.js

  exports.config = {
  // See http://brunch.io/#documentation for docs.
  files: {
    javascripts: {
      joinTo:
        "js/app.js",
      order: {
        before: [
          "node_modules/jquery/dist/jquery.js",
          "node_modules/what-input/src/what-input.js",
          "node_modules/foundation-sites/js/foundation.core.js",
          "node_modules/foundation-sites/js/foundation.topbar.js",
          "node_modules/foundation-sites/js/foundation.reveal.js",
          "node_modules/foundation-sites/js/foundation.offcanvas.js"
        ]
      }

      // To use a separate vendor.js bundle, specify two files path
      // http://brunch.io/docs/config#-files-
      // joinTo: {
      //  "js/app.js": /^(web\/static\/js)/,
      //  "js/vendor.js": /^(web\/static\/vendor)|(deps)/
      // }
      //
      // To change the order of concatenation of files, explicitly mention here
      // order: {
      //   before: [
      //     "web/static/vendor/js/jquery-2.1.1.js",
      //     "web/static/vendor/js/bootstrap.min.js"
      //   ]
      // }
    },
    stylesheets: {
      joinTo: "css/app.css",
      order: {
        after: ["web/static/css/app.css"] // concat app.css last
      }
    },
    templates: {
      joinTo: "js/app.js"
    }
  },

  conventions: {
    // This option sets where we should place non-css and non-js assets in.
    // By default, we set this to "/web/static/assets". Files in this directory
    // will be copied to `paths.public`, which is "priv/static" by default.
    assets: /^(web\/static\/assets)/
  },

  // Phoenix paths configuration
  paths: {
    // Dependencies and current project directories to watch
    watched: [
      "web/static",
      "test/static"
    ],

    // Where to compile files to
    public: "priv/static"
  },

  // Configure your plugins
  plugins: {
    babel: {
      // Do not use ES6 compiler in vendor code
      ignore: [/web\/static\/vendor/]
    },
    sass: {
      options: {
        includePaths: [
          'node_modules/foundation-sites/scss',
          'node_modules/motion-ui/src'
        ]
      }
    }
  },
  modules: {
    autoRequire: {
      "js/app.js":            ["web/static/js/app"]
    }
  },

  npm: {
    enabled: true,
    globals: {
      $: 'jquery',
      jQuery: 'jquery',
    },
    whitelist: ["phoenix", "phoenix_html", "jquery", "jquery-validation", "foundation-sites"]
  }
};

1 个答案:

答案 0 :(得分:0)

我通过将foundation.min.js复制到web / static / vendor:

找到了解决方案
cp ./node_modules/foundation-sites/dist/js/foundation.min.js web/static/vendor/

推送到heroku的更改,现在一切正常。