2015-02-27 9 views
10

Ho scritto un modulo npm che può essere installato a livello globale dm-npm.come avviare il modulo globale di npm con il flag di armonia

Mi piace usare co in quel modulo.

Come posso dire al modulo che viene eseguito con il flag harmony quando viene avviato a livello globale?

Ecco la 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" 
    } 
} 

ho ottenuto il seguente messaggio di errore durante l'esecuzione di una funzione di co:

> $ 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) 

essa è causata da

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

Un modulo non può dettare quali flag di riga comandi viene avviato con node.js. Se è quello che stai chiedendo, l'utente del modulo dovrà solo avviare node.js con il flag '--harmony' e la documentazione del tuo modulo dovrà solo informarlo. – jfriend00

+0

sto avviando il modulo dalla riga di comando. Ho creato un alias nel mio zshrc "alias node = 'node --harmony'" ma ho lo stesso problema. in quale luogo posso definire che il nodo funzioni sempre con il flag harmony? – divramod

risposta

9

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

nella parte superiore dello script funziona per me, nel tuo caso in/bin/dm-npm

+0

thx, che ha risolto il mio problema. ho scritto: #! node --harmony – divramod

+0

Buono a sapersi è possibile, grazie. –

+0

Ho dovuto usare '#!/Usr/bin/node --harmony'. – ryanpcmcquen

Problemi correlati