Jam*_*ton 6 build hierarchy meteor
在我的 Meteor 1.10.2 项目中,我在文件夹assets内创建了一个文件/public/夹。构建 Meteor 应用程序时,我发现此assets文件夹已复制到这些位置,作为这些web.browser...文件夹的直接子级:
/.meteor/local/build/programs/web.browser/assets/
/.meteor/local/build/programs/web.browser.legacy/assets
Run Code Online (Sandbox Code Playgroud)
但是,如果我将文件夹重命名为Assets(或给它任何其他名称),则在构建应用程序时,我会在app文件夹内部更深处找到它:
/.meteor/local/build/programs/web.browser/app/Assets/
/.meteor/local/build/programs/web.browser.legacy/app/Assets/
Run Code Online (Sandbox Code Playgroud)
这背后的逻辑是什么?意图是什么?处理文件夹的最佳做法是/public/assets/什么?在用作文件夹内/public/文件夹的名称时,是否还有其他词被给予特殊处理?
FWIW,这种行为具体是由于流星工具捆绑程序造成的:
https://github.com/meteor/meteor/blob/release/METEOR%401.10.2/tools/isobuild/bundler.js#L719-L725
setTargetPathFromRelPath(relPath) {
// XXX hack
if (relPath.match(/^(packages|assets|dynamic)\//)) {
this.targetPath = relPath;
} else {
this.targetPath = files.pathJoin('app', relPath);
}
Run Code Online (Sandbox Code Playgroud)
因此我们可以看到有 3 个特殊的目录名表现出这种特殊的行为:
公共资产示例:
这些资产捆绑在构建中:
对于“包”,虽然我们可以理解这就是 Meteor 运送包的静态资源的方式(即当它们调用 时api.addAssets(),我们也可以看到存在潜在的冲突,在(尽管不太可能)情况下,我们使用像这样的路径名“公共/包/我的包名称”。
至于“资产”,最初的名称是“静态”,但我认为它也没有被公开记录。
对于“动态”,我还不知道它的确切目的是什么,但我们可以看到它将其内容作为“javascript”类型(至少是 SVG 文件)提供服务,而前 2 个将其内容作为“文本/纯文本”提供。
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |