He creado un Polímero elemento para la representación de las rebajas que utiliza el marked.js biblioteca. Me preguntaba, ¿cuál es la forma recomendada de carga en sus dependencias?

Debo usar una etiqueta de script?

<script src="../marked/lib/marked.js"></script>

O sería mejor poner todo de mi dependencias en un html de importación y el enlace a ese archivo. En este caso sólo tengo una dependencia, pero fácilmente podría haber más.

<!-- in scripts.html -->
<script src="../marked/lib/marked.js"></script>
<script src="../foo/foo.js"></script>
<script src="../bar/bar.js"></script>

<!-- in mark-down.html -->
<link rel="import" href="scripts.html">

Nota: Estas rutas asumir mi elemento (y sus dependencias) se instalan con bower así deberían ser todos hermanos en bower_components.

  • Yo iría a por el último, pero cerca de las etiquetas de script.
InformationsquelleAutor robdodson | 2014-03-02

1 Comentario

  1. 51

    Recursos privados, debe tener instalado en su componente de carpeta y utilizar directamente. Pero compartido recursos, esos recursos que otros componentes de mi que también desee utilizar (como marked), que deben ser manejados como dependencias.

    Sugerimos dos convenios para el manejo compartido de las dependencias:

    1. siempre uso el canónica camino que es ../<package-name> (esto se hizo ya). Polímero por convención espera un plano de dependencia de la carpeta (apoyada por Bower), por lo que cualquier recurso que usted necesita debe estar siempre en este camino.
    2. referirse a una de importación para el recurso compartido.

    En este caso,

    <script src="../marked/lib/marked.js">

    cumple la primera convención. El componente puede depender de marked paquete y esperar que existen en ../.

    La segunda convención soporta compartir. Si hay más de un componente en un proyecto que utiliza un script etiqueta para cargar una biblioteca, la biblioteca va a cargar varias veces. Las importaciones, por otro lado, se de-duplican, por lo que no tiene este problema.

    Por ejemplo, si todos los componentes de la carga marked la forma estándar:

    <link href="../marked-import/marked-import.html">

    entonces usted tendrá sólo una copia de la secuencia de comandos de carga.

    Además, las importaciones permiten indirecta de la real de recursos. Por ejemplo, normalmente marked-import dependerá de marked y el uso de un script etiqueta para cargar el JavaScript. Pero en realidad, cualquier proyecto en particular autor puede modificar el local marked-import.html para cargar el código principal de un CDN o desde cualquier otra ubicación. Por indirecting acceso de todos a través de la importación, vamos a crear un único punto de control.

    Hoy, marked y otras bibliotecas no incluyen los archivos de importación, por lo que tenemos que llenar esos vacíos. Además, se requerirá de la coordinación con otros componentes (acuerdo sobre cuál es el estándar de nombre de importación será para un determinado recurso compartido). Cuando (y si) estas convenciones adoptadas, tales preguntas disminuirá con el tiempo.

    Así, el componente instalado sería algo como esto:

    /components
      /mark-down - depends on marked-import
      /marked-import - (controlled by user, can just depend on `../marked`)
      /marked
    • Gracias. Supongo que de polímero de marcado elemento sigue el mismo patrón, pero no entiendo cómo el <link> referencia a polymer.html obras en el interior de la marked-element.html en el directorio raíz apunta a ‘../polymer/polymer.html’? Sé que después de la distribución de la componente de todo va a ser en acoplan en el bower_components directorio pero ¿qué pasa durante el desarrollo de este componente? Gracias
    • polymer es sólo un componente, como marked, mark-down, y marked-import. Debería estar allí sentado /components con el resto de ellos. Por lo general, no diferenciar entre el desarrollo y la implementación (a menos que usted está hablando acerca de la concatenación de los recursos [de vulcanización], que es un tema diferente).
    • Es el enfoque recomendado en la actualidad para la de Polímero 1.0? ¿Qué acerca de ES6 módulos?
    • ¿Esta forma de manejo de dependencias causa marked a estar disponible a nivel mundial? Parece que es así, y es una desventaja frente ES6 módulos…

Dejar respuesta

Please enter your comment!
Please enter your name here