Ответ 1
Вы можете создать чисто автономное приложение Meteor, но есть несколько "странных" компромиссов.
-
Meteor является немного сильным, когда дело доходит до создания DDP-соединения, поэтому оно сделано для 127.0.0.1 как своего рода нулевой loopback, поскольку сервер отсутствует.
-
Метеор уже создает приложение в этом автономном режиме, так как система Cordova была введена, поэтому ее просто извлечь из этого довольно много. Существуют сборки для
server
,web.cordova
иbrowser
.
1) Свяжите приложение и извлеките его
Я просто сделаю случайный пример из приложения todo (для этого требуется бит на стороне сервера, но не игнорируйте его)
meteor create --example todos
cd todos
meteor bundle ~/Desktop/app.tar.gz
cd Desktop
tar xvzf app.tar.gz
2) В пакете есть каталог в /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)
-
С железным маршрутизатором его немного сложно, но вы не можете использовать
/
, вам придется использовать index.html и относительные пути -
Вы можете удалить избыточные пакеты в
meteor-platform
, которые вы не будете использовать, например autoupdate -
В атмосфере есть несколько пакетов, которые помогают хранить данные, такие как
ground:db
, а не коллекции mongo, для которых требуется серверная сторона.