2015-02-27 4 views
10

Ich schrieb ein Npm-Modul, das global installiert werden kann dm-npm.So starten Sie globale Npm-Modul mit Harmonie-Flag

Ich mag Co in diesem Modul zu verwenden.

Wie kann ich dem Modul mitteilen, dass es mit dem Harmony-Flag ausgeführt wird, wenn es global gestartet wird? Hier

ist die 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" 
    } 
} 

ich bekam die folgende Fehlermeldung, wenn sie mit einer Co-Funktion ausgeführt wird:

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

es verursacht wird, durch

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

Ein Modul kann nicht diktieren, welche Befehlszeilen Flags node.js mit gestartet wird. Wenn es das ist, was Sie fragen, dann muss der Benutzer des Moduls nur node.js mit der '--harmony'-Flagge starten und die Dokumentation Ihres Moduls muss sie nur darüber informieren. – jfriend00

+0

Ich starte das Modul von der Kommandozeile aus. Ich habe einen Alias ​​in meinem zshrc "alias node = 'node --harmony'" erstellt, aber ich habe das gleiche Problem. An welcher Stelle kann ich festlegen, dass der Knoten immer mit dem Harmony Flag läuft? – divramod

Antwort

9

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

auf der Spitze des Skripts funktioniert für mich, in Ihrem Fall in/bin/dm-npm

+0

thx, das hat mein Problem gelöst. Ich schrieb: #! Knoten --harmony – divramod

+0

Gut zu wissen, dass es möglich ist, danke. –

+0

Ich musste '#!/Usr/bin/node --harmony' verwenden. – ryanpcmcquen

Verwandte Themen