您可以构建一个纯粹的离线 Meteor 应用,但有一些“奇怪”的妥协。
1 ) 捆绑您的应用并将其提取出来
我将在 todo 应用程序中随机创建一个示例(它需要一个服务器端位,但请忽略它)
meteor create --example todos
cd todos
meteor bundle ~/Desktop/app.tar.gz
cd Desktop
tar xvzf app.tar.gz
2) 在 bundle 中有一个目录/programs/web.browser,这是你离线应用的框架,所以把那个目录放在某个地方。
3) 有两个以哈希作为文件名的文件。将它们重命名为app.js 和app.css
4) 有一个名为app 的目录。将其所有内容移动到主目录,即
cd app
mv * ../
rm -r app
5) 创建一个index.html 文件,其中包含以下内容:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="app.css?meteor_css_resource=true">
<script type="text/javascript">
__meteor_runtime_config__ = {
"meteorRelease": "1.0.0",
"ROOT_URL": "/",
"ROOT_URL_PATH_PREFIX": "",
"autoupdateVersion": "00000",
"DDP_DEFAULT_CONNECTION_URL": "127.0.0.1"
};
</script>
<script type="text/javascript" src="app.js"></script>
<script type="text/javascript">
if (typeof Package === 'undefined' ||
!Package.webapp ||
!Package.webapp.WebApp ||
!Package.webapp.WebApp._isCssLoaded())
console.log("Load Fail");
</script>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, user-scalable=0">
<meta http-equiv="content-language" content="en">
<meta name='apple-mobile-web-app-capable' content='yes' />
<meta name='apple-mobile-web-app-status-bar-style' content='black' />
<title>Your App</title>
</head>
<body>
</body>
</html>
瞧:
请记住,这个应用程序需要一个服务器,所以这种方式毫无用处,但如果你愿意,你可以制作一个纯粹的客户端应用程序。
其他注意事项:
对图像、字体和其他文件使用基于文件的 html 路径(file.jpg 而不是 /images/file.jpg)
使用 Iron 路由器有点棘手,但你不能使用 /,你必须使用 index.html 和相对路径
您可以删除meteor-platform中您不会使用的冗余包,例如自动更新
气氛中有一些包可以帮助数据存储,例如 ground:db,而不是需要服务器端的 mongo 集合。