我正在使用browserify打包的NPM/Redux應用程序(我們稱之爲Client
),我現在正在考慮部署它。使用git,npm(browserify/watchify)和rails來設置和部署browserify build(dist)
在編碼時,我是否使用
watchify
來持續觀察變化並重建應用程序;當然,這個輸出沒有被縮小,並且在javascript捆綁文件中包含調試和源代碼映射。出於這個原因,我
/dist/js/client.js
是,到現在爲止,包括在我.gitignore
文件,但不是在.npmignore
因爲/dist/*
需要它的最終方案。
Client
實際上是在另一個非NPM(rails
)應用程序,依賴於最終的javascript構建一個NPM包被使用。每當我部署我的rails
應用程序,它將運行npm install,獲取client
,並需要使用它的構建。
兩個選項:
1)
client
一個postinstall
腳本,實際運行npm run build
- 臨:這將是巨大的,並避免犯構建
- 缺點:需要browserify ,babel,node-sass等,這些都是
devDependencies
,因此未包含在最後的production
環境中(build
失敗,我不想將這些包添加爲dependency
,它對我沒有任何影響。
2)實際上與客戶一起提交構建
- 臨:它的工作原理
- 缺點:這是因爲每當開發者模式,運行watchify,構建文件被煩取而代之,這可能會導致無意中提交了一個未分類的dev版本
Client
,並且從git的角度來看也是非常煩人的(總是會對分支進行未定義的更改,它會與其他開發人員等產生衝突)。 - 我試着
.gitignore
該文件和git add --force
它在同一時間,以便我可以有一個手冊publish
腳本,但git似乎並不喜歡它。
什麼是正確的方法呢?
謝謝!