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