IT박스

coffeescript에 npm 패키지를 작성할 수 있습니까?

itboxs 2020. 11. 5. 07:50
반응형

coffeescript에 npm 패키지를 작성할 수 있습니까?


나는 한동안 coffeescript를 사용했습니다. 이제 npm 패키지를 작성해야합니다. coffeescript로 작성할 수 있습니까? 아니면 coffeescript를 javascript로 컴파일해야합니까?


커피 스크립트로 패키지를 작성하되 자바 스크립트로만 게시 할 것을 제안합니다. 나는 이것을 이렇게한다 :

  • coffeescript 코드가 들어갑니다 src
  • 코드는 lib
  • src내 자식 저장소에 최선을 다하고, lib.gitignore
  • libnpm에 게시 src되고 내.npmignore
  • coffee-script패키지에 내devDependencies

영감을 얻기 위해 내 간단한 패키지 refix를 살펴볼 수 있습니다 .


coffeescript에서 NPM 모듈을 작성할 수 있지만 JS 사용자가 사용할 수 있으려면 NPM에 게시하기 전에 JS로 컴파일해야합니다.

package.jsonprepublish게시하기 전에 지정된 스크립트를 실행하는 스크립트 후크를 사용하여 쉽게 수행 할 수 있습니다. 다음 prepublish은 zombie.js NPM 후크 의 예입니다.

https://github.com/assaf/zombie/blob/master/package.json#L16


CoffeeScript에서 npm 패키지를 처음부터 작성했습니다. 브라우저뿐만 아니라 노드에도 CoffeScript를 사용하는 것이 좋습니다. 그러나 모듈을 사용하거나 게시하기 전에 소스 CoffeeScript를 JavaScript로 컴파일해야합니다. 그래도 CoffeeScript를 사용하는 데 방해가되지는 않습니다.

팁 : 개발하는 동안 coffee -cw yourfile.coffee(명령 줄)을 사용 하여 파일의 변경 사항을 확인하고 저장시 컴파일하십시오.


당신의 모듈 많은 경우 coffee-script자신의에서 devDependencies, 그냥 전 세계적으로 설치하는 데 유용합니다 coffee-script(이 훨씬 더 오래 걸립니다) 대신에 각각의 모듈을 설치합니다.

coffee-buildcoffee-script.

다음 두 스크립트를 다음에 추가하십시오 package.json.

{
  "name": "my-coffee-module",
  "scripts": {
    "build": "coffee-build -v 1.11.x -b -o js src",
    "postinstall": "npm run build"
  }
}

공지 사항이 어떻게 -v 1.11.x암시 업그레이드를 할 수 있습니다 정확한 버전이 아닙니다.

유일한 단점은 사용자가 npm install -g coffee-build모듈을 설치하기 전에 해야한다는 것입니다.


이것이 최선의 방법인지는 확실하지 않지만 기술적으로 대부분 CoffeeScript로 패키지를 작성할 수 있습니다.

기본적으로 다음 coffee과 같이 단순히 명령을 래핑하는 JS 파일을 작성할 수 있습니다 .

bin / howl.coffee

console.log 'Awwwooooo!'

bin / howl.js

#!/usr/bin/env node

var path    = require('path');
var exec    = require('child_process').exec;
var coffee  = path.resolve(__dirname, '../node_modules/coffee-script/bin/coffee');
var howl    = path.resolve(__dirname, './howl.coffee');
var command = coffee + ' ' + howl;

exec(command, function(error, stdout) {
  if (error) { throw error };
  console.log(stdout);
});

실행 중 node howl.js(또는 단순히 howl전역 적으로 설치되었을 때)은 이제 Awwooooo!. require다른 CoffeeScript 파일과 같은 작업을 수행 하고 JavaScript "래퍼"에서 CoffeeScript로 전달하여 인수에 액세스 할 수 있습니다 .

어쨌든, 이것을하지 않을 이유가 있을지도 모르지만, 그것은 지금까지 저에게 효과가 있었으므로 추가 관점을 위해 이것을 제출할 것이라고 생각했습니다.

이 기술을 사용하는 간단한 예제 프로젝트는 https://www.github.com/joshuabc/packdown을 확인 하십시오 .

참고 URL : https://stackoverflow.com/questions/13645824/can-i-write-npm-package-in-coffeescript

반응형