2014-01-25 153 views
5

我想創建兩個單獨的npm命令來在開發機器上和生產模式下本地啓動我的NodeJS項目。我希望能夠將參數分別傳遞給機器以提供正確的依賴關係 - 這可能是生產環境中的CDN或本地機器。使用npm命令啓動帶參數的NodeJS項目

這裏就是我期待在的package.json

"run": "node ./server/app.js", /* for running locally*/ 

"start": "node ./server/app.js", /* for running in production*/ 

如果我嘗試調用運行故宮 - 它創建了一個錯誤:

npm ERR! npm run-script [<pkg>] <command> 
npm ERR! not ok code 0 

我也希望能夠發送包含URL的命令行參數。

回答

5

你做得不對。

要調用自定義腳本,你必須運行

npm run-script run 

你的package.json應該有:

"scripts": { 
    "start": "node ./server/app.js", 
    "run": "node ./server/app.js" 
} 

參見:https://npmjs.org/doc/cli/npm-run-script.html

0

你可以使用這個bash腳本運行任何(甚至嵌套)模塊直接與參數。不要忘記將~/Develop/node_modules更改爲您的本地路徑。

#!/bin/bash 
if [ $# -eq 0 ]; then 
    echo Usage: npmrun module [args] 
    exit 
fi 
data=~/bin/npmrun.data 
if [ -f $data ]; then source $data 
else declare -A where 
fi 
cd ~/Develop/node_modules 
if [ -z ${where[$1]} ]; then 
    path=$(find -path '*/bin/'$1) 
    if [ -z $path ]; then 
     echo "Module \"$1\" not founded!" 
     exit 
    else 
     where[$1]=$path; 
     declare -p where > $data 
    fi 
fi 
${where[$1]} ${@:2} 
相關問題