2016-10-02 70 views
0

我使用npm創建構建腳本。Shell命令將html文件複製到正確的文件夾

構建腳本包括typescript編譯。

打字稿編譯將文件夾結構從ts文件夾複製到dist/js文件夾。

的TS文件夾就像

ts 
-- one 
    -- one.html 
    -- one.ts 

    two 
    -- two.html 
    -- two.ts 

,並建立了DIST/JS文件夾是像

js 
-- one 
    -- one.js 

    two 
    -- two.js  

的TS文件夾總是包含HTML,我需要複製到JS編譯有後跑。

我可以使用什麼shell命令將html文件從ts文件夾複製到輸出js文件夾中的正確文件夾中。

更新

我曾嘗試下面的命令

"build:copy-html": "find ./app/ts -name '*.html' cp ./dist/js \\;", 

,但得到的

發現錯誤:CP:未知的主或經營

UPDATE

在TS文件夾我有

ts 
    --home 
     --home.html 
     --home.ts 

我需要的JS文件夾是

js 
    --home 
     --home.html 
     --home.js 
+0

'find','cpio'和'tar'是你的朋友 – GMichael

+0

GMichael我還看着你的建議,並更新了我的問題,你可以提供任何更多的建議如何我可以做到這一點。 – ttmt

+0

查看'find'的* man *頁面:爲了在找到的文件上運行命令,您需要使用'-exec'選項。 – user1934428

回答

1

我通常做到以下幾點:

(cd app/ts; tar -cf - `find . -name '*.html' `) | (cd app/dist/js ; tar -xf -) 

我想你想複製所有保存目錄結構的app/tsapp/js目錄中的'* .html'文件,文件名中沒有空格。

還有一些方法。 findcpio組合通常出現在find手冊頁喜歡這裏:https://linux.die.net/man/1/find

+0

GMichael如何在我的腳本中工作 - '「build:copy-html」:「tar -cf - 'cd app/ts; find。-name'* .html''|(cd app/js; tar - xf - )「,' – ttmt

+0

如果我運行腳本,我會出錯 - 'sh:line 0:cd:app/js:沒有這樣的文件或目錄 tar:./home/home.html:Can not stat:No such文件或目錄 tar:錯誤退出延遲以前的錯誤。' – ttmt

+0

@ttmt'app/ts'的真正完整路徑是什麼? – GMichael

相關問題