我們有一個專案,為了方便開發,使用node來處理一些依賴關系,以及我們的測驗腳本來啟動docker鏡像來運行測驗。 我們的目標是,開發人員不需要在本地運行bats,只需運行npm test,就可以啟動鏡像并運行測驗。
我可以通過多種方式讓它在本地的Git Bash中作業--但是我無法通過npm腳本讓它作業--這讓我花了一兩天的時間來嘗試解決不同的SO方法。 以下是我正在處理的問題:
{}。
"scripts": {
"test": "bats test/**/*.bats",
"test-ci": "bats --formatter junit -T test/**/*.bats",
"test-docker": "docker run -it -v /c/source/git/devops/dotnetcore-nuget-push/:/app node:slim npm test",
"test-docker-test": "docker run -it -v $(pwd):/app -w //app node:slim npm test",/span>
"test-docker-debug": "docker run -it -v /c/source/git/devops/dotnetcore-nuget-push: /app -w //app node:slim bash -c "echo $(pwd) && ls"",
"test-docker2": "docker run -it -v /c/source/git/devops/dotnetcore-nuget-push/:/app -w/app node:slim npm test",
},
}
事實上,我們最后只會有test--只是嘗試一些東西,以確保它們的作業原理相同。
下面是在Git Bash中本地作業的情況:
docker run -it -v /$(pwd):/app -w //app node:slim npm testdocker run -it -v /$(pwd):/$(pwd) -w /$(pwd) node:slim npm test。
MSYS_NO_PATHCONV=1 docker run -it -v $(pwd):$(pwd) -w $(pwd) node:slim npm test
所以我試著在我的npm腳本中加入一些這樣的內容和一個除錯的內容,但是唯一能起作用的是當我硬編碼卷的路徑-v /c/source/git/devops/dotnetcore-nuget-push/:/app。 理想情況下,這不會被硬編碼,但當我使用$(pwd)時,我得到錯誤,它現在找不到我的package.json。這里是使用 $(pwd) 而不是硬編碼的路徑 - 它試圖在 workdir/app 路徑中尋找 - 然而 workdir 是 app,它應該在 app 安裝的地方尋找 package.json - 與我使用硬編碼路徑時的情況類似。
我查看了以下資源--但沒有一個是使用npm的
uj5u.com熱心網友回復:
TL;DR
將
標籤: 上一篇:Quickbooksphpcurl認證的GET請求失敗
下一篇:試圖使用GithubActions作業流將ReactApp部署到Azure,但在TypeScript中得到一個錯誤。
$(pwd)替換為

