2015-02-27 23 views
10

Napisałem moduł npm, który można zainstalować globalnie dm-npm.jak uruchomić globalny moduł npm z flagą harmonii

Lubię używać co w tym module.

W jaki sposób mogę poinformować moduł, że działa z flagą harmonii, gdy jest uruchamiany globalnie?

Oto package.json:

{ 
    "name": "dm-npm", 
    "version": "0.0.3", 
    "description": "npm helper", 
    "main": "index.js", 
    "scripts": { 
    "test": "mocha --reporter nyan", 
    "start": "node --harmony ./bin/dm-npm" 
    }, 
    "repository": { 
    "type": "git", 
    "url": "https://github.com/divramod/dm-npm.git" 
    }, 
    "keywords": [ 
    "npm", 
    "template" 
    ], 
    "author": "", 
    "license": "ISC", 
    "bugs": { 
    "url": "https://github.com/divramod/dm-npm/issues" 
    }, 
    "homepage": "https://github.com/divramod/dm-npm", 
    "devDependencies": { 
    "chai": "^2.1.0", 
    "mocha": "^2.1.0" 
    }, 
    "dependencies": { 
    "co": "^4.4.0", 
    "co-prompt": "^1.0.0", 
    "colors": "~1.0.3", 
    "shelljs": "^0.3.0" 
    }, 
    "bin": { 
    "dmnpm": "./bin/dm-npm" 
    } 
} 

mam następujący komunikat o błędzie podczas uruchamiania z funkcją Kolorado:

> $ dmnpm init                               
/usr/local/lib/node_modules/dm-npm/index.js:152 
co(function*() { 
     ^
SyntaxError: Unexpected token * 
    at exports.runInThisContext (vm.js:73:16) 
    at Module._compile (module.js:443:25) 
    at Object.Module._extensions..js (module.js:478:10) 
    at Module.load (module.js:355:32) 
    at Function.Module._load (module.js:310:12) 
    at Module.require (module.js:365:17) 
    at require (module.js:384:17) 
    at Object.<anonymous> (/usr/local/lib/node_modules/dm-npm/bin/dm-npm:3:1) 
    at Module._compile (module.js:460:26) 
    at Object.Module._extensions..js (module.js:478:10) 

jest to spowodowane przez

co(function*() { 
    var projectName = 
     yield prompt('project name: '.blue); 
    process.stdin.pause(); 
}); 
+0

Moduł nie może dyktować, z jakich flag linii poleceń uruchamiany jest node.js. Jeśli o to pytasz, użytkownik modułu będzie musiał tylko uruchomić plik node.js z flagą '--harmony', a dokumentacja twojego modułu będzie musiała po prostu o tym poinformować. – jfriend00

+0

uruchamiam moduł z wiersza poleceń. Stworzyłem alias w moim zshrc "alias node = 'node --harmony'", ale mam ten sam problem. w którym miejscu mogę zdefiniować, że węzeł zawsze działa z flagą harmonii? – divramod

Odpowiedz

9

#!/usr/bin/env node --harmony

na górze skryptu działa dla mnie, w twoim przypadku w/bin/dm-npm

+0

thx, który rozwiązał mój problem. Napisałem: #! node --harmony – divramod

+0

Dobrze wiedzieć, że to możliwe, dzięki. –

+0

Musiałem użyć '#!/Usr/bin/node --harmony'. – ryanpcmcquen