[英]Run brunch from different directory and use relative paths
我們希望在多個項目中使用相同的構建系統。 我有一個工作早午餐配置文件,我想放在一個git子模塊中,以便可以在多個項目中引用該子模塊,並且更改很容易傳播(比復制和粘貼更不易碎並設置brunch-config.js的權威來源) 。
將brunch-config.js放在git子模塊中會導致我的文件夾結構如下所示:
WebApp // git root
|---Brunch-Build-System // git submodule
| |---brunch-config.js
|---node_modules
|---source // all the source code I want compiled
早午餐運行假設brunch-config.js將與正在編譯的源相同或更高。 在此設置中,情況並非如此。 我已經嘗試修改我的brunch-config.js使用相對路徑無濟於事。 這是我目前所處的早午餐配置的files
塊,沒有任何相對路徑嘗試:
files: {
javascripts: {
joinTo: {
'js/lib.js': /^(?!source\/)/
},
entryPoints: {
'source/scripts/app.jsx': {
'js/app.js': /^source\//
},
}
},
stylesheets: {joinTo: 'css/core.css'}
}
如果上面給出了所需的文件夾結構,我如何修改它以使用相對路徑? 這甚至可能嗎?
子模塊需要與父repo中的根文件夾關聯:它是gitlink ( 主repo索引中的特殊條目 ),它記錄了子模塊檢出的SHA1。
在您的情況下,最好是在post-checkout鈎子中使用腳本,確保在以下之間存在符號鏈接 :
brunch-config.js
在正確的位置和 Brunch-Build-System / brunch-config.js
包含在鈎子中的線條將是沿線的
#!/bin/bash
if [ ! -e /correct/path/for/brunch-config.js ]; then
ln -s /correct/path/for/brunch-config.js Brunch-Build-System/brunch-config.js
fi
雖然OP在Windows上:
我最終只是以編程方式復制文件並gitignoreing復制的文件
通常,早午餐支持相對路徑。 但為了使其工作,您必須首先確保watched
其他文件夾。 請參閱文檔中的此部分 。 對於您的情況,請將其添加到您的配置中。
paths = {
watched: ['../source', '../node_modules'],
}
然后通過..\\/
前置RegExs。
joinTo: {
'js/lib.js': /^..\/(?!source\/)/
},
entryPoints: {
'source/scripts/app.jsx': {
'js/app.js': /^..\/source\//
},
}
您還可以編寫一個將路徑作為參數的函數,而不是RegEx,並且必須返回是否應該包含路徑。 請參閱文檔中的此部分 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.