2012-09-25 43 views
29

Me gustaría empezar a desarrollar la extensión de Google Chrome utilizando node.js (ya que ya he escrito un script de "texto a canción" en node.js, y me gustaría convertirlo en una extensión de Chrome.) ¿Cuál sería la forma más directa de abordar este problema?¿Es posible desarrollar extensiones de Google Chrome utilizando node.js?

+3

la extensión de Chrome está en el lado del cliente mientras que node.js está en el lado del servidor – vinayr

+2

@vinayr Sí, estoy preguntando si es posible instalar un servidor node.js local como una extensión de Chrome (quizás usando NPAPI). –

+0

Encontré un proyecto relacionado (que permite el uso de módulos de nodo directamente desde DOM, usando WebKit): http://stackoverflow.com/questions/8794140/is-it-possible-to-create-desktop-applications-with -node-js –

Respuesta

33

En realidad lo es. Mira esto Developers Live-cast. Esto es algo que he estado buscando también, y esto te ayudaría.

Esto acerca las aplicaciones de nodo a su navegador. Aquí está el repo!

EDIT:

me he dado cuenta de que esta vieja respuesta mío se pone cada vez upvotes de vez en cuando (gracias a todos).

Pero hoy en día soy más partidario de usar aplicaciones web en lugar de agrupar su aplicación en muchas plataformas como la tienda Chrome o lo que sea. Puede consultar la publicación de google here y here que indica algunas direcciones.

En la práctica, le aconsejo que empiece a construir una aplicación web progresiva (PWA) con capacidades fuera de línea utilizando service worker y cosas progresivas.

En la actualidad hay muchos recursos en la web y puede ofrecer una aplicación mucho más rica que puede lograr un público mucho más amplio si lo hace de la manera correcta.

Gracias de nuevo, y buena codificación.

+0

¿Hay alguna relación entre estos dos proyectos? Uno de ellos está destinado a permitir que los módulos CommonJS se utilicen en el navegador, mientras que el otro es un intento de permitir la interoperabilidad de node.js con las aplicaciones empaquetadas de Chrome. –

+1

Encontré otro proyecto que utiliza node-browserify para crear extensiones de Chrome, llamado node-chromify: http://iceddev.github.com/blog/2012/11/05/node-js-in-chrome/ –

+2

pero esto no Ponga todas las capacidades de nodejs en extensión. –

8

La respuesta simple es NO, a menos que encuentre la forma de install node.js with an extension using NPAPI.

Nodejs y una extensión de Google Chrome tienen un par de cosas en común, es decir, ambas entienden javascript y ambas usan el motor de javascript v8.

Google Chrome Extension

"extensiones de Google Chrome son pequeños programas de software que se pueden modificar y mejorar la funcionalidad del navegador Chrome".

Para desarrollar una extensión de Google Chrome debe escribir algo de javascript y/o html/css. Luego puede ejecutar la extensión en su navegador.

Si desea para los demás bajar su extensión tendrá que proporcionar el archivo config.json que describe que la extensión establece permisos etc.

nodejs

"Node.js está construido sobre una plataforma El tiempo de ejecución de JavaScript de Google Chrome para crear fácilmente aplicaciones de red rápidas y escalables ".

Para desarrollar aplicaciones en nodejs, escriba algunos javascript y/o html/css para aplicaciones web.

Si desea que otros utilicen su aplicación, inicie su servidor nodejs y escuche las solicitudes entrantes.

Resumen

A pesar de algunas de las similitudes una extensión de Chrome y Google nodejs tienen nada que ver con la otra. No puede usarlos juntos de manera especial fuera de la comunicación cliente/servidor normal.

+0

¿Estás seguro de que no es posible instalar un servidor web local (u otro complemento) usando una extensión de Chrome? Este tema proporciona algunos detalles sobre el uso de NPAPI para instalar local un servidor web local utilizando una extensión de navegador: http://stackoverflow.com/questions/5053244/is-it-possible-to-embed-a-http-server-in- a-google-chrome-extension –

+0

Básicamente, estoy tratando de crear una extensión de Chrome que pueda instalar un servidor web en la computadora del usuario. (Quizás esto podría hacerse invocando un comando de shell desde la extensión de Chrome, por ejemplo, en Ubuntu: sudo apt-get install nombre-de-paquete-para-instalar). –

+0

No. Google Chrome no permitirá esto. Esto abrirá un gran problema de seguridad. La única forma es hacer que el usuario instale un programa real fuera de Chrome. Las extensiones de Chrome son sandbox y no pueden hacer cosas como "sudo apt-get install name-of-package-to-install". – saeed

Cuestiones relacionadas