2016-06-06 55 views
0

我是新來使用Makefile(s),我想創建一個命令make package <PACKAGE_NAME>使用make文件在nodejs中創建包monorepo

而且我想它運行以下命令:

mkdir $PACKAGE_NAME 
cd $PACKAGE_NAME 
npm init -y 
mkdir src 
mkdir lib 
mkdir test 

我有點糊塗了,如果我應該把這個在shell腳本或者如果我可以在make文件本身有這種直接(這是可取的),我也不確定如何在Makefile中有參數。

+0

'make package_ '可以接受嗎? (注意下劃線。) – Beta

+0

嘿@Beta我更喜歡它作爲一個標誌或作爲一個適當的參數,下劃線看起來很亂,但我對任何東西都是開放的。 – ThomasReggi

+0

'make package PACKAGE_NAME = '如何? – Beta

回答

1

這將做到這一點:

package: 
    mkdir $(PACKAGE_NAME) 
    cd $(PACKAGE_NAME) ; npm init -y ; mkdir src lib test 

第2行開頭的空格是TAB,而不是四個空格。同樣是第3行。

+0

我在添加東西時遇到了麻煩,有時文件出現在頂層。 https://gist.github.com/reggi/2e09ef9f181e3a9d1586c5c7dab54c7c – ThomasReggi

+0

@ThomasReggi:每行都在它自己的子shell中執行,所以'cd'只適用於該行(這就是爲什麼我把這些其他命令放在同一行)。嘗試'touch $(PACKAGE_NAME)/ lib/index.js'而不是'touch。/ lib/index.js'。 – Beta