Saltar al contenido

Convenciones de nomenclatura de proyectos de Node.js para archivos y carpetas

este problema se puede solucionar de diversas formas, pero te mostramos la resolución más completa para nosotros.

Solución:

Después de algunos años con node, puedo decir que hay no convenciones para la estructura de directorios/archivos. Sin embargo, la mayoría de las aplicaciones express (profesionales) usan una configuración como:

/
  /bin - scripts, helpers, binaries
  /lib - your application
  /config - your configuration
  /public - your public files
  /test - your tests

Un ejemplo que usa esta configuración es nodejs-starter.

Yo personalmente cambié esta configuración a:

/
  /etc - contains configuration
  /app - front-end javascript files
    /config - loads config
    /models - loads models
  /bin - helper scripts
  /lib - back-end express files
    /config - loads config to app.settings
    /models - loads mongoose models
    /routes - sets up app.get('..')...
  /srv - contains public files
  /usr - contains templates
  /test - contains test files

En mi opinión, este último combina mejor con la estructura de directorios estilo Unix (mientras que el primero mezcla esto un poco).

También me gusta este patrón para separar archivos:

lib/index.js

var http = require('http');
var express = require('express');

var app = express();

app.server = http.createServer(app);

require('./config')(app);

require('./models')(app);

require('./routes')(app);

app.server.listen(app.settings.port);

module.exports = app;

libre/static/index.js

var express = require('express');

module.exports = function(app) 

  app.use(express.static(app.settings.static.path));

;

Esto permite desacoplar perfectamente todo el código fuente sin tener que preocuparse por las dependencias. Una muy buena solución para luchar contra Javascript desagradable. Un ejemplo del mundo real está cerca que utiliza esta configuración.

Actualización (nombres de archivo):

En cuanto a los nombres de archivo, los más comunes son corto, minúsculas nombres de archivo Si su archivo solo se puede describir con dos palabras, la mayoría de los proyectos de JavaScript usan un guión bajo como delimitador.

Actualización (variables):

Con respecto a las variables, se aplican las mismas “reglas” que para los nombres de archivo. Los prototipos o clases, sin embargo, deben usar el caso de Carmel.

Actualización (guías de estilo):

  • https://github.com/feross/estándar
  • https://github.com/airbnb/javascript

Usar kebab-case para todos los nombres de paquetes, carpetas y archivos.

¿Por qué?

Debería imaginar que cualquier carpeta o archivo podría extraerse a su propio paquete algún día. Los paquetes no pueden contener letras mayúsculas.

Los paquetes nuevos no deben tener letras mayúsculas en el nombre. https://docs.npmjs.com/files/package.json#nombre

Por lo tanto, camelCase nunca debe usarse. esto deja snake_case y kebab-case.

kebab-case es, con mucho, la convención más común en la actualidad. El único uso de guiones bajos es para paquetes de nodos internos, y esto es simplemente una convención de los primeros días.

No hay convenciones. Hay alguna estructura lógica.

Lo único que puedo decir: nunca use los nombres de archivos y directorios camelCase. ¿Por qué? Funciona, pero en Mac y Windows no hay diferencia entre someAction y some action. Me encontré con este problema, y ​​no una vez. Necesito un archivo como este:

var isHidden = require('./lib/isHidden');

Pero lamentablemente creé un archivo lleno de minúsculas: lib/ishidden.js. Funcionó para mí en mac. Funcionó bien en Mac de mi compañero de trabajo. Las pruebas se ejecutan sin errores. Después de la implementación, obtuvimos un gran error:

Error: Cannot find module './lib/isHidden'

Oh sí. Es una caja de linux. Entonces, la estructura del directorio camelCase podría ser peligrosa. Es suficiente para un colega que está desarrollando en Windows o Mac.

Así que use un guión bajo (_) o un guión (-) como separador si lo necesita.

Puntuaciones y comentarios

Si conservas alguna incertidumbre y forma de acrecentar nuestro división puedes escribir un comentario y con mucho gusto lo ojearemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *