browserify v2中间件

cap*_*lam 2 middleware node.js coffeescript express browserify

在开发中,我在我的Express服务器上使用Coffeescript和Browserify中间件来提供我的客户端JS,如下所示:

app.use browserify mount: '/client.js', entry: './client.coffee', watch: yes

今天我升级了我的依赖项并在browserify v2网站上注意到了这一点:

在browserify中最糟糕的想法之一,用于托管捆绑包的ad-hoc http服务器中间件终于消失了.

咖啡脚本的默认支持消失了.您仍然可以在程序中使用coffee脚本,您只需要编译为js或者自己将源转换挂钩到bundle管道中.

请记住,如果你不同意我期望很多人会做的这些削减,那么通过v2重构,你可以更容易地展示自己对于浏览器应该如何使用底层新库作为起点的看法.

很公平.

唯一的问题是,我已经阅读了新API的文档,而且我实际上如何实现自己的中间件有点不知所措.事实上,我甚至不能得到一个基本的单机例如使用工作browserify.add()browserify.bundle(),更不用说作为快递中间件.

我可以继续使用v1,但由于这个项目仍处于开发阶段,我想让我的依赖项保持最新.任何建议都非常感谢.

更新:

我到目前为止:

browserify = require 'browserify'
coffee = require 'coffee-script'
through = require 'through'

app.get '/client.js', (req, res) ->
  b = browserify()
  b.add './client.coffee'
  b.transform (file) ->
    write = (buf) ->
      data += buf
    end = ->
      @queue coffee.compile(data)
      @queue null
    data = ''
    return through(write, end)
  b.bundle {}, (err, src) ->
    res.send src
Run Code Online (Sandbox Code Playgroud)

这是有效的,除了我曾经说过require './module'我现在必须这样做require './module.coffee'.这不是很理想,我不想更新我的应用程序中的每个需求.

Are*_*ius 5

我有这个工作:

browserify = require('browserify-middleware')
coffeeify = require('coffeeify')
express = require('express')

app = express()

browserify.settings('transform', [coffeeify])

app.get('/client.coffee', browserify('./client.coffee'));

app.listen(3230);
Run Code Online (Sandbox Code Playgroud)

但它可能无法解决require("X.coffee")问题的需要.