尝试包含多个js源时出错:检查javascripts.joinTo配置

时间:2016-03-23 09:39:28

标签: javascript phoenix-framework brunch

我正在尝试使用phoenix-elixirbrunch设置基本应用,但收到以下错误:

  

23 Mar 10:18:10 - 警告:node_modules / phoenix / priv / static / phoenix.js已编译,但未写入。检查你的javascripts.joinTo配置
  3月23日10:18:10 - 警告:node_modules / phoenix_html / priv / static / phoenix_html.js已编译,但未写入。检查你的javascripts.joinTo config

这就是我在branch-config.js中所拥有的:

files: {
    javascripts: {
      joinTo: {
        "js/app.js": /^(web\/static\/js)/,
        "js/script.js": /^(web\/static\/js)/
      }
    }
    // ...
}

这是我的文件夹结构:

web/
  static/
    js/
      app.js
      script.js

我确实看到script.js被包含在内(我看到它被编译成priv/static/js并且还作为开发工具中的源代码)但是其中的函数没有表现出我期望他们做的行为。如果我将script.js的内容添加到app.js

,它们就可以正常工作

有趣的是css如果我这样做就可以了......

stylesheets: {
  joinTo: "css/app.css",
  joinTo: "css/style.css"
},

如果我将js格式化为css,则没有错误,但同样,其中的函数也不会启动...

javascripts: {
  joinTo: "js/app.js",
  joinTo: "js/script.js"
}

我是否需要将script.js添加到vendor文件夹中? app.js是唯一可以在js内使用的web/js脚本吗?我觉得我可能在某个地方错过了一个场景。

修改

  

$ mix phoenix.new -v
  凤凰城v1.1.4

     

$ brunch -v
  2.1.3

1 个答案:

答案 0 :(得分:3)

如果您希望将js文件合并到一个app.js文件中,只需将配置保留为默认值

files: {
    javascripts: {
      joinTo: {
        "js/app.js": /^(web\/static\/js)/
      }
    }
    // ...
}

这意味着web/static/js中的所有文件都将连接到app.js。发生了什么事基本上是你告诉早午餐将所有javascripts加入到两个不同的文件中,这会混淆它。