파일 및 폴더에 대한 Node.js 프로젝트 명명 규칙
대규모 Node.js 프로젝트의 파일 및 폴더에 대한 이름 지정 규칙은 무엇입니까?
대문자, camelCase 또는 밑줄을 사용해야합니까?
즉. 이것이 유효한 것으로 간주됩니까?
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));
};
This allows decoupling neatly all source code without having to bother dependencies. A really good solution for fighting nasty Javascript. A real-world example is nearby which uses this setup.
Update (filenames):
Regarding filenames most common are short, lowercase filenames. If your file can only be described with two words most JavaScript projects use an underscore as the delimiter.
Update (variables):
Regarding variables, the same "rules" apply as for filenames. Prototypes or classes, however, should use camelCase.
Update (styleguides):
Use kebab-case
for all package, folder and file names.
Why?
You should imagine that any folder or file might be extracted to its own package some day. Packages cannot contain uppercase letters.
New packages must not have uppercase letters in the name. https://docs.npmjs.com/files/package.json#name
Therefore, camelCase
should never be used. This leaves snake_case
and kebab-case
.
kebab-case
is by far the most common convention today. The only use of underscores is for internal node packages, and this is simply a convention from the early days.
There are no conventions. There are some logical structure.
The only one thing that I can say: Never use camelCase file and directory names. Why? It works but on Mac and Windows there are no different between someAction and some action. I met this problem, and not once. I require'd a file like this:
var isHidden = require('./lib/isHidden');
But sadly I created a file with full of lowercase: lib/ishidden.js
. It worked for me on mac. It worked fine on mac of my co-worker. Tests run without errors. After deploy we got a huge error:
Error: Cannot find module './lib/isHidden'
Oh yeah. It's a linux box. So camelCase directory structure could be dangerous. It's enough for a colleague who is developing on Windows or Mac.
So use underscore (_) or dash (-) separator if you need.
Based on 'Google JavaScript Style Guide'
File names must be all lowercase and may include underscores (_) or dashes (-), but no additional punctuation. Follow the convention that your project uses. Filenames’ extension must be .js.
Most people use camelCase
in JS. If you want to open-source anything, I suggest you to use this one :-)
Node.js doesn't enforce any file naming conventions (except index.js
). And the Javascript language in general doesn't either. You can find dozens of threads here which suggest camelCase, hyphens and underscores, any of which work perfectly well. So its up to you. Choose one and stick with it.
According to me: For files, use lower camel case if module.exports is an object, I mean a singleton module. This is also applicable to JSON files as they are also in a way single ton. Use upper camel case if module.exports returns a constructor function where it acts like a class.
For folders use short names. If there is need to have multiple words, let it be completely lower case separated by "-" so that it works across all platforms consistently.
참고URL : https://stackoverflow.com/questions/18927298/node-js-project-naming-conventions-for-files-folders
'code' 카테고리의 다른 글
UITableView는 Facebook 애플리케이션처럼 하단으로 스크롤 할 때 더 많이로드됩니다. (0) | 2020.09.15 |
---|---|
MySQL Workbench 6.3 (Mac)이 간단한 쿼리에서 중단됨 (0) | 2020.09.15 |
sdcard에 저장된 이미지가 Android의 갤러리 앱에 표시되지 않습니다. (0) | 2020.09.15 |
nodejs의 싱글 톤 패턴-필요합니까? (0) | 2020.09.15 |
아직없는 경우 배열에 요소 추가 (0) | 2020.09.15 |