簡體   English   中英

從不同的目錄運行早午餐並使用相對路徑

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM