你可以在Meteor上使用多个客户端/ lib / server文件夹吗?

时间:2015-07-07 20:09:30

标签: meteor

我问的原因是我喜欢把我的项目分成组件而且使用Meteor我猜这将意味着某些事情:

└── app
    └── apps
        ├── .meteor
        ├── blog
        │  ├── client
        │  ├── lib
        │  └── server
        ├── faqs
        │  ├── client
        │  ├── lib
        │  └── server
        └── people
            ├── client
            ├── lib
            └── server

或者是我唯一的选择:

└── app
    ├── .meteor
    ├── client
    │  └── apps
    │      ├── block
    │      ├── faqs
    │      └── people
    ├── lib
    │  └── apps
    │      ├── block
    │      ├── faqs
    │      └── people
    └── server
       └── apps
           ├── block
           ├── faqs
           └── people

2 个答案:

答案 0 :(得分:2)

Official doucmentation中,您可以看到构建应用的不同方式。

方法1:根级文件夹

apples/lib/               # code for apple-related features
apples/client/
apples/server/

oranges/lib/              # code for orange-related features
oranges/client/
oranges/server/

方法2:客户端/服务器/

内的文件夹
lib/apples/               # common code for apples
lib/oranges/              # and oranges

client/apples/            # client code for apples
client/oranges/           # and oranges

server/apples/            # server code for apples
server/oranges/           # and oranges

方法3:包 这是代码分离,模块化和可重用性的终极选择。如果将每个功能的代码放在一个单独的包中,则一个功能的代码将无法访问除导出之外的其他功能的代码,从而使每个依赖项都显式化。这也允许最简单的功能独立测试。您还可以发布包并使用meteor add在多个应用中使用它们。

packages/apples/package.js     # files, dependencies, exports for apple feature
packages/apples/<anything>.js  # file loading is controlled by package.js

packages/oranges/package.js    # files, dependencies, exports for orange feature
packages/oranges/<anything>.js # file loading is controlled by package.js

答案 1 :(得分:1)

您列出的最重要的一个是完全有效的。底部没有意义(将client文件夹放在server文件夹中)。所以,是的,您可以通过这种方式构建应用程序,尽管很多人会建议将应用程序的功能分离到单独的包中。