파일 및 폴더에 대한 Node.js 프로젝트 명명 규칙
대규모 Node.js 프로젝트의 파일 및 폴더에 대한 명명 규칙은 무엇입니까?
대문자로 할까요, 낙타 케이스로 할까요, 아니면 점수를 낮게 할까요?
즉, 이것이 유효한 것으로 간주됩니까?
project-name
app
controllers
someThings.js
users.js
models
someThing.js
user.js
views
some-things
index.jade
users
logIn.jade
signUp.jade
...
노드에서 몇 년이 지난 후에는 디렉터리/파일 구조에 대한 규칙이 없다고 말할 수 있습니다.그러나 대부분의 (전문가용) 익스프레스 애플리케이션은 다음과 같은 설정을 사용합니다.
/
/bin - scripts, helpers, binaries
/lib - your application
/config - your configuration
/public - your public files
/test - your tests
이 설정을 사용하는 예로는 nodejs-starter가 있습니다.
개인적으로 이 설정을 다음으로 변경했습니다.
/
/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
제 생각에 후자는 유닉스 스타일의 디렉터리 구조와 더 잘 어울립니다(전자는 이것을 약간 혼동합니다).
파일을 구분하는 이 패턴도 좋습니다.
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;
lib/static/index.js
var express = require('express');
module.exports = function(app) {
app.use(express.static(app.settings.static.path));
};
따라서 종속성을 방해하지 않고 모든 소스 코드를 깔끔하게 디커플링할 수 있습니다.불쾌한 자바스크립트와 싸우기 위한 정말 좋은 해결책입니다.이 설정을 사용하는 실제 예제가 근처에 있습니다.
업데이트(파일 이름):
파일 이름과 관련하여 가장 일반적인 것은 짧은 소문자 파일 이름입니다.파일을 두 단어로만 설명할 수 있는 경우 대부분의 JavaScript 프로젝트는 구분 기호로 밑줄을 사용합니다.
업데이트(변수):
변수와 관련하여 파일 이름과 동일한 "규칙"이 적용됩니다.그러나 프로토타입 또는 클래스는 camelCase를 사용해야 합니다.
업데이트(스타일 가이드):
사용하다kebab-case
모든 패키지, 폴더 및 파일 이름에 대해 설명합니다.
왜요?
언젠가 폴더나 파일이 자체 패키지에 압축 해제될 수도 있다고 생각해야 합니다.패키지에는 대문자를 사용할 수 없습니다.
새 패키지는 이름에 대문자를 사용할 수 없습니다.https://docs.npmjs.com/files/package.json#name
그므로러,camelCase
절대 사용해서는 안 됩니다.이것은 남습니다.snake_case
그리고.kebab-case
.
kebab-case
오늘날 가장 일반적인 관습입니다.언더스코어는 내부 노드 패키지에만 사용되며, 이는 단순히 초기의 관례에 불과합니다.
규칙이 없습니다.몇 가지 논리적인 구조가 있습니다.
내가 말할 수 있는 유일한 것은:camelCase 파일 및 디렉토리 이름을 사용하지 마십시오.왜냐고요? 작동하지만 Mac과 Windows에서는 일부 작업과 일부 작업 사이에 차이가 없습니다.저는 이 문제를 한 번도 만난 적이 없습니다.다음과 같은 파일이 필요했습니다.
var isHidden = require('./lib/isHidden');
하지만 안타깝게도 소문자로 가득 찬 파일을 만들었습니다.lib/ishidden.js
맥에서 작동했습니다.내 동료의 맥에서 잘 작동했습니다.테스트는 오류 없이 실행됩니다.배포 후 큰 오류가 발생했습니다.
Error: Cannot find module './lib/isHidden'
오, 그래.이것은 리눅스 박스입니다.따라서 camelCase 디렉토리 구조는 위험할 수 있습니다.Windows 또는 Mac에서 개발 중인 동료에게 충분합니다.
따라서 필요한 경우 밑줄(_) 또는 대시(-) 구분 기호를 사용합니다.
'Google JavaScript 스타일 가이드' 기반
파일 이름은 모두 소문자여야 하며 밑줄(_) 또는 대시(-)를 포함할 수 있지만 추가 구두점은 포함할 수 없습니다.프로젝트에서 사용하는 규칙을 따릅니다.파일 이름의 확장명은 .js여야 합니다.
Node.js는 파일 명명 규칙을 적용하지 않습니다(예:index.js
그리고 자바스크립트 언어는 일반적으로 그렇지 않습니다.여기에는 kamelCase, 하이픈 및 밑줄을 제안하는 수십 개의 스레드가 있으며, 이 중 어느 것이든 완벽하게 잘 작동합니다.그러니 당신에게 달렸어요.하나를 선택하고 그것을 고수하세요.
나에 따르면: 파일의 경우 module.exports가 객체라면 lower camel case를 사용하십시오. 즉, 싱글톤 모듈을 의미합니다.이것은 또한 싱글톤이기 때문에 JSON 파일에도 적용할 수 있습니다.module.exports가 클래스처럼 작동하는 생성자 함수를 반환하는 경우 상위 카멜 대소문자를 사용합니다.
폴더의 경우 짧은 이름을 사용합니다.여러 개의 단어가 필요한 경우 "-"로 구분하여 모든 플랫폼에서 일관되게 작동하도록 합니다.
대부분의 사람들이 사용합니다.camelCase
JS에서. 오픈 소스를 원한다면, 이것을 사용하는 것을 제안합니다 :-)
제 생각은 이렇습니다.
project-name
app
controllers
somethings.controller.js
user-story.controller.js
users.controller.js
models
something.model.js
user.model.js
views
some-things
index.view.jade
users
login.view.jade
signup.view.jade
언급URL : https://stackoverflow.com/questions/18927298/node-js-project-naming-conventions-for-files-folders
'it-source' 카테고리의 다른 글
셀러리 대 RQ 사용에 대한 장단점 (0) | 2023.07.25 |
---|---|
Spring REST 컨트롤러가 빈 데이터와 함께 JSON을 반환합니다. (0) | 2023.07.25 |
부동 소수점 번호의 정확한 값은 어떻게 인쇄합니까? (0) | 2023.07.25 |
장고에서 쿠키를 설정하고 얻는 방법은 무엇입니까? (0) | 2023.07.20 |
SQL Server 2008에 새 스키마를 추가하는 방법은 무엇입니까? (0) | 2023.07.20 |