2012-05-08 22 views
14

Estoy intentando configurar un proyecto nodejs para usar requirejs. Debo llamar a mi programa con node r.js ./config/main.js y mis main.js tiene el siguiente aspecto:configurando requirejs leyendo de node_modules

var cs = require("coffee-script"); 
var requirejs = require("requirejs"); 

requirejs.config({ 
    nodeRequire: require, 
    baseUrl: ".", 
    paths: { 
    cs: "cs", 
    CoffeeScript: "CoffeeScript", 
    csBuild: "csBuild", 

    express: "express", 
    nohm: "nohm", 
    redback: "redback", 
    _: "underscore", 
    "connect-redis": "connect-redis", 
    freebase: "freebase" 
    } 
}); 

console.log("hetet"); 
requirejs(["cs!./config/app"], function(app){ 
    console.log("closing") 
}); 

y app.coffee interior:

define((require) -> 

    express = require("express") 

    RedisStore = require("connect-redis")(express) 
    app = express.createServer() 

    config = require('cs!./config') 

    require('cs!./setup')(app, express, RedisStore) 
    require('cs!./routes')(app) 
    require('cs!../src/server') 

    app.listen(config.server.port) 
) 

me parecen fallar en main.js con el error:

node.js:201 
     throw e; // process.nextTick error, or 'error' event on first tick 
      ^
Error: Calling node's require("config") failed with error: Error: Calling node's require("config") failed with error: Error: Cannot find module 'config' 

y lo que he notado es cuando comente la línea var requirejs = require("requirejs"); (en main.js), me sale más y fallar en la línea RedisStore = require("connect-redis")(express) (en app.coffee) con el error:

node.js:201 
     throw e; // process.nextTick error, or 'error' event on first tick 
      ^
TypeError: undefined is not a function 
    at ./config/app.coffee:10:41 

He estado teniendo muchos problemas para configurar requirejs en el nodo. Cualquier ayuda sería apreciada.

gracias

Respuesta

-1

Lo mejor es que no configure RequireJS mirar en node_modules, ya que los módulos en esa área son módulos de formato para el nodo. Hay un poco más de información en el requirejs node page.

+8

FYI, esto no es del todo cierto. npm no es estrictamente para módulos de solo nodo. Hay una tonelada de módulos instalados de npm que funcionan perfectamente en el navegador tal como están o hay módulos alternativamente enviados que están listos para el navegador. Este módulo generalmente se especifica en la clave 'browser' del archivo' package.json'. –

+2

'npm install underscore jquery' Estas bibliotecas son paquetes en forma de 'plataforma cruzada' para que sean compatibles con AMD (requirejs) –