在meteor build上添加文件到bundle

时间:2015-06-26 14:49:39

标签: meteor

我有一个流星项目,我想将一些bash脚本添加到bundle.tgz的顶层目录中

我目前通过以下方式创建我的套装:
meteor build bundle.tgz

有没有办法配置构建,以便在结果tgz文件的顶部包含那些bash脚本?

1 个答案:

答案 0 :(得分:2)

创建捆绑脚本

在项目的根目录create_bundle.sh中创建一个文件,并将其他脚本添加到项目的根目录中。我已经使用了一个文件的例子, some_file.sh ,根据需要再添加

<强> create_bundle.sh

#!/bin/sh
rm -f bundle.tar.gz
rm -rf /tmp/bundle
meteor build /tmp/bundle
tar -xzf /tmp/bundle/*.tar.gz -C /tmp/bundle

## Add any more as needed
cp some_file.sh /tmp/bundle/bundle

rm /tmp/bundle/*.tar.gz
tar -cvzf bundle.tar.gz -C /tmp/bundle .

现在,如果您运行./create_bundle.sh而不是meteor build bundle.tar.gz,它将会:

  • 在项目目录中创建一个bundle.tar.gz
  • bundle.tar.gz也会在bundle文件夹中添加 some_file.sh 。您可以通过更改create_bundle.sh中的cp行将其移至根文件夹,以使用/tmp/bundle/代替/tmp/bundle/bundle

替代修改流星源

一种选择是git克隆流星源

git clone http://github.com/meteor/meteor

编辑文件meteor / tools / bundler.js(此时:https://github.com/meteor/meteor/blob/f59380a6cfb1d09a6d8ef9abda11646d37e37356/tools/bundler.js#L1910

并添加批处理文件

builder.write('yourfile.sh', { data: new Buffer(
    "#!/bin/sh
    "echo 'hello world'\n", 'utf8')});
});

然后,您可以使用这个特殊的流星版本构建您的项目:

从项目目录(* nix):

/path/to/cloned_meteor_repo/meteor build yourfile.tar.gz