2012-01-18 67 views

回答

8

將CoffeeScript代碼放在src文件夾中,並將lib文件夾中已編譯好的JavaScript代碼放入文件夾中。

然後在您的package.json文件中,聲明mainlib文件夾中的js文件。然後你的包的用戶將需要js文件而不是咖啡文件。

你可以拿@ TrevorBurnham的repository爲例。

+0

它那種感覺怪怪提交編譯的代碼,但我想我會嘗試。 – 2012-01-18 17:18:26

+1

git存儲庫鏈接到npm?因爲如果不是這樣,我可以在npm發佈之前生成lib文件夾,並在之後將其刪除。 – 2012-01-18 17:25:43

+1

@MarcelM。不是。順便說一句,你可以使用.gitignore忽略'lib'文件夾而不是刪除它。 – qiao 2012-01-18 17:42:57

8

我結束時,我的git存儲庫上只有一個src文件夾;一個.gitignore文件,其中一行爲lib;和一個空的.npmignore文件。需要使用空的.npmignore文件,因爲如果它不在您的模塊上,則會使用您的.gitignore

我只是增加了一個Cakefile與任務使用coffee --compile --output lib/ src/pretestprepublish任務package.json測試和發佈前,建建我src目錄。

"scripts": { "pretest": "cake build", "prepublish": "cake build", }

該解決方案使我的git倉庫乾淨(編譯的代碼),但增加了我的javascript代碼發佈到NPM時庫。

+2

你可以在https://github.com/reaktivo/zootool – 2012-01-19 22:21:35

+0

上看到這個工作。注意:這對於「npm install reaktivo/zootool」不起作用。有人可能想要做類似的事情,如果他們分叉你的回購,並等待你拿他們的補丁。 – 2015-07-12 00:21:57

1

我剛開始接觸的CoffeeScript,但我建議如下:

  1. Store中的CoffeeScript代碼src/*.coffee
  2. main.js在項目的根目錄NPM來抓,並有它只是做一些像require('coffee-script'); require('./src/my_lib.coffee')

那裏。你永遠不會編譯你的代碼;它都是透明處理的。您不會將編譯後的代碼檢查到git中,也不會將未編譯的CoffeeScript與未編譯的CoffeeScript一起發佈爲NPM。

編輯: 在較新版本咖啡scirpt,你應該require('coffee-script/register');

+2

感覺像使咖啡腳本成爲您未開發模塊的要求並不是最好的主意。 – 2013-01-31 18:09:19

+0

我不確定我是否理解上述評論 - 如何讓'coffee-script'具有與'underscore'不同的依賴關係? – lambinator 2014-11-17 20:13:51

+0

Underscore是一個庫,而CoffeeScript是一種編譯語言。您需要運行時庫的功能。用編譯語言你不(必然)。所有你需要的是生成的代碼。 (如果它是一種解釋型語言,*會在運行時需要功能。) – 1j01 2015-04-10 17:16:57