日々精進

新しく学んだことを書き留めていきます

RequireJSをnode.jsで使う

クライアントサイドとサーバサイドの両方でJSのコードを使いたい場合、
Requirejsを使うが、以下のようなコードを書いたらcls.coffeeで
エラーが出た。


main.coffee

cls = require "./cls"
requirejs = require('requirejs')
requirejs.config
  nodeRequire: require
  baseUrl: __dirname + "/../../common"
  paths:
    Model: 'models/model'



cls.coffee

requirejs = require('requirejs')
model = requirejs "Model"

原因はrequirejs.configの前にclsを読み込んでその中でrequirejsを使ってモジュールを読み込んでいること。
以下のようにrequirejs.configの後でcls.coffeeを読み込んだら直った。

requirejs = require('requirejs')
requirejs.config
  nodeRequire: require
  baseUrl: __dirname + "/../../common"
  paths:
    Model: 'models/model'
cls = require "./cls"