【问题标题】:Node: Serving CoffeeScript and JavaScript Files Side By Side节点:并排提供 CoffeeScript 和 JavaScript 文件
【发布时间】:2012-12-22 21:43:32
【问题描述】:

我有一个使用 Node 和 Express 运行的简单 Web 应用程序。我开始用 js 编写应用程序,但想过渡到咖啡。我希望file1.jsfile2.coffee 在我的应用程序中并排放置(两者都用作js),这样我就可以毫无摩擦地放入第三方客户端脚本。

我找到了连接资产,但它似乎与我的框架 Express 发生了某种冲突。 Express 不想在./assets 目录中提供文件。我可以放弃 Express,但我需要有充分的理由。

我可以将哪些资产管道放入 Express(或其他框架,如果需要),让我可以并排保存 .js 和 .coffee 文件?

【问题讨论】:

  • 您不需要资产管道即可在 node express 中同时使用 javascript 和 coffeescript。
  • @ConnorBlack 这就是我的想法,但是cs = require('coffee-script') 在我的 server.js 文件的顶部,我仍然没有得到作为 js 的咖啡脚本文件——它们正在被发现,但作为 .coffee 文件。
  • 你不应该将require('coffee-script');分配给任何东西。
  • @ConnorBlack 我看不出会有什么不同;从 require 函数中获取返回值不会做任何事情吗?无论哪种方式,只是将其更改为 require('coffee-script'); 并没有改变任何内容。

标签: javascript node.js coffeescript express


【解决方案1】:

Connect-assets 应该可以做到这一点。

将此添加到您的 app.jsserver.js 或任何您称之为主 .js 文件的顶部:

require('coffee-script');

这将导致 node 为您编译咖啡脚本。它还允许您在应用程序的任何位置混入咖啡脚本和 javascript 文件,而不必担心再次编译。

确保执行以下操作:

  • npm install coffee-script 在命令行

  • 在您的 layout.jade 中使用 != js('script1')

  • app.use(require('connect-assets')()); 在 app.configure 调用后的 app.js 中。

Connect-assets 默认在/assets/js 中查找脚本文件。此外,资产在被视图调用之前不可用,因此对已编译资产执行 curl 将得到 404,除非它作为视图的一部分被调用。

【讨论】:

  • 不是编译问题,是路由问题。我在 /assets/js/file1.js 中有一个 file1.js,当我用 != js('file1') 引用它时得到一个 404。
  • 我得到了它的工作,更新了你的答案以添加一些要检查的东西。
  • 太棒了,看起来很棒。这绝对是一个普遍的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-24
  • 2020-02-03
  • 2015-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多