2013-01-28 3 views
0

Quelqu'un peut-il me dire quelle est la méthode recommandée pour utiliser un paquet node.js que l'on installerait localement avec npm (npm sans l'option -g)?Méthode recommandée pour utiliser les modules node.js avec le météore

Une façon quelqu'un était recommandé:

% cd myapp/.meteor/local/build/server/ 
    % npm install aws-lib 
    npm http GET https://registry.npmjs.org/aws-lib 
    npm http 304 https://registry.npmjs.org/aws-lib 
    npm ERR! Could not create /home/user/myapp/.meteor/local/build/server/node_modules/___aws-lib.npm 

Cela échoue parce que myapp/.meteor/local/build/serveur/node_modules est un lien symbolique vers/usr/lib/météore/lib/node_modules /.

Je souhaite l'installer localement pour plusieurs raisons. Je veux que ce soit portable, si je déploie l'application ailleurs, je veux que toutes les dépendances voyagent avec. Je ne veux pas faire ça en tant que root. Il semble erroné d'installer des trucs de ce genre dans/usr/lib/meteor.

+0

pourquoi le lien symbolique? –

+0

Le lien symbolique a été créé avec 'meteor create myapp', je ne l'ai pas créé manuellement. –

Répondre

0
  1. D'abord, meteor bundle bundle.tar.gz pour obtenir un paquet -deployable node de votre application.
  2. tar -xvf bundle.tar.gz et cd bundle. Dans le répertoire server du regroupement, il y a un répertoire node_modules.
  3. cd server & npm install aws-lib

Ceci est un paquet prêt déploiement. Appelez node bundle/main.js pour le démarrer. Pour utiliser réellement le module, vous devrez appeler __meteor_bootstrap__.require.

Contrôlez ceci pour une solution plus détaillée! https://stackoverflow.com/a/12730509/1757994

Vous pouvez envelopper le module node comme un package qui comprend le code du module et la ligne __meteor_bootstrap__.require. Ceci est un bon exemple d'une cale simple:

https://github.com/tmeasday/meteor-page-js

Et ceci est un exemple d'une cale autour d'un module de noeud:

https://github.com/possibilities/meteor-awssum

Je soupçonne que c'est le paquet que vous vouliez dans la première place ...

+0

Le problème que je vois avec ceci est que vous déconnectez le répertoire node_modules du répertoire node_modules installé par meteor. Lorsque meteor est mis à jour, l'application ne recevra pas les mises à jour sans intervention manuelle. Cela ne semble pas être une bonne solution à long terme, peut-être que c'est la seule solution? N'y a-t-il rien de tel qu'un chemin de recherche pour les modules afin que les modules de météore puissent être sur le chemin de recherche et ensuite tous combinés dans un répertoire quand le faisceau de météores a été exécuté? –

+0

Je suggérerais de faire un paquet Meteor, puis il ajuste le module de nœud que vous voulez utiliser. – DoctorPangloss

Questions connexes