coffeescript運行原理
4405 ワード
先日、nodejsバージョンでv 0.0.6に更新しました.isaacs. これは今後のCoffee Scriptの発展に大きな影響を与えます.だからこのバージョンが発表されると、みんなは激しい討論を行いました.興味のある読者は以下のいくつかの文章を見られます.典型的で、現在論争の焦点です. nodejs更新説明 what are the merrits/demertits of require.extens? module name reolution order insufficiently specified この問題に対して、私は仁者が仁者に会って知者に会うので、みんなはすべて少しの道理があります.この文章の真意は、原理を整理し直して、皆さんに自分の判断をさせることです.
歴史を発展させる
wikiの紹介によると、Coffee Scriptの発展は以下の通りです.
2009年12月3日、Jeremiy Ahkenas. はい、 Git 上でCoffeeScriptに対して最初に提出しました.「これはこの神秘的な言語の最初の提出です.(initial comit of the mystery langer.)」当時のコンパイラはRuby語で書かれていました.同年12月24日にAhkenasは最初の上のラベルとアーカイブのバージョンを作成しました.2010年2月21日に0.5版をリリースしました.このバージョンはRubyによって作成されたコンパイラを純粋なCoffeeScriptに書き換えました.その時、吸引されました. GitHub 貢献者の多くは、毎日約300人がこの特別案件のページを訪れています.2010年12月24日、Askenasは1.0.0安定版をリリースし、Hacker Newsで発表しました.Hacker Newsも当時、この特別案件が初めて発表されたウェブサイトです.
原理
CoffeeScriptのホームページでは、はっきりとお伝えしました.
「CoffeeScript is a little laggage that comples into JavaScript.」
JavaScript上に構築された新しい言語であり、JavaScriptの簡潔性と可読性を強化し、より複雑な機能を追加したという利点がある.欠点もはっきりしています.コードは最終的にJavaScriptにコンパイルされます.常に人種に「余分」を与えます.
具体的には、CoffeeScriptのコードはNodejs環境でどのように実行されていますか?
Coffee Scriptをインストールした後、インストール方法は参考できます.http://coffeescript.org/#installation
私はhellowworld.co.ffeeを書きました.コードは以下の通りです.
このファイルを.jsファイルに変換するコマンド
Nodejs呼び出しCoffee Scriptコード
やはり上の例を使って、私がnodejsコードを使ったら、上のhellowworld.co ffeeのコードを呼びたいです.index.jsを書くだけです.
これは、なぜrequire.extensionsをキャンセルしたのですか?coffee scriptにこんなに大きな影響を与えた原因です.
皆さんのためになりたいです.
参考記事:http://zh.wikipedia.org/wiki/CoffeeScript#cite_note-change og-1
歴史を発展させる
wikiの紹介によると、Coffee Scriptの発展は以下の通りです.
2009年12月3日、Jeremiy Ahkenas. はい、 Git 上でCoffeeScriptに対して最初に提出しました.「これはこの神秘的な言語の最初の提出です.(initial comit of the mystery langer.)」当時のコンパイラはRuby語で書かれていました.同年12月24日にAhkenasは最初の上のラベルとアーカイブのバージョンを作成しました.2010年2月21日に0.5版をリリースしました.このバージョンはRubyによって作成されたコンパイラを純粋なCoffeeScriptに書き換えました.その時、吸引されました. GitHub 貢献者の多くは、毎日約300人がこの特別案件のページを訪れています.2010年12月24日、Askenasは1.0.0安定版をリリースし、Hacker Newsで発表しました.Hacker Newsも当時、この特別案件が初めて発表されたウェブサイトです.
原理
CoffeeScriptのホームページでは、はっきりとお伝えしました.
「CoffeeScript is a little laggage that comples into JavaScript.」
JavaScript上に構築された新しい言語であり、JavaScriptの簡潔性と可読性を強化し、より複雑な機能を追加したという利点がある.欠点もはっきりしています.コードは最終的にJavaScriptにコンパイルされます.常に人種に「余分」を与えます.
具体的には、CoffeeScriptのコードはNodejs環境でどのように実行されていますか?
Coffee Scriptをインストールした後、インストール方法は参考できます.http://coffeescript.org/#installation
私はhellowworld.co.ffeeを書きました.コードは以下の通りです.
console.log 'hello world jifeng'
このファイルを.jsファイルに変換するコマンド
coffee -c helloworld.coffee
以上の命令により、ハロルド.jsを生成できます.コードは以下の通りです.// Generated by CoffeeScript 1.4.0
(function() {
console.log('hello world jifeng');
}).call(this);
上記の例を通して、Coffee Scriptとは.coffeeファイルをどのように迅速に編集しますか?jsファイルにする過程です.Nodejs呼び出しCoffee Scriptコード
やはり上の例を使って、私がnodejsコードを使ったら、上のhellowworld.co ffeeのコードを呼びたいです.index.jsを書くだけです.
require('coffee-script');
var hello = require('./helloworld.coffee');
それはnodejsのrequire.extensionsの機能に依存しています.具体的なコードは見られます. coffee-script.js、主なコードはこれです. loadFile = function(module, filename) {
....
return module._compile(compile(stripped, {
filename: filename,
literate: helpers.isLiterate(filename)
}), filename);
};
if (require.extensions) {
_ref = ['.coffee', '.litcoffee', '.coffee.md'];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
ext = _ref[_i];
require.extensions[ext] = loadFile;
}
}
Coffee Scriptとは、nodejsが持参するrequire.extens拡張機能により、require'.coffee'ファイルの場合、先に変更ファイルをJavaScriptコードにコンパイルしてからロードされるというやり方です.これは、なぜrequire.extensionsをキャンセルしたのですか?coffee scriptにこんなに大きな影響を与えた原因です.
皆さんのためになりたいです.
参考記事:http://zh.wikipedia.org/wiki/CoffeeScript#cite_note-change og-1