Rud*_*ger 89 javascript node.js
大型Node.js项目中文件和文件夹的命名约定是什么?
我应该利用资金,使用资金还是低于标准?
IE浏览器.这被认为有效吗?
project-name
app
controllers
someThings.js
users.js
models
someThing.js
user.js
views
some-things
index.jade
users
logIn.jade
signUp.jade
...
Run Code Online (Sandbox Code Playgroud)
bod*_*ser 133
使用节点几年后,我可以说目录/文件结构没有约定.但是,大多数(专业)快递应用程序使用如下设置:
/
/bin - scripts, helpers, binaries
/lib - your application
/config - your configuration
/public - your public files
/test - your tests
Run Code Online (Sandbox Code Playgroud)
使用此设置的示例是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
Run Code Online (Sandbox Code Playgroud)
在我看来,这与unix风格的目录结构更好地匹配(而上面的内容混合了一点).
我也喜欢这种模式来分隔文件:
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;
Run Code Online (Sandbox Code Playgroud)
LIB /静态/ index.js
var express = require('express');
module.exports = function(app) {
app.use(express.static(app.settings.static.path));
};
Run Code Online (Sandbox Code Playgroud)
这允许整齐地解耦所有源代码而不必考虑依赖性.一个真正的好解决方案来打击令人讨厌的JavaScript.附近有一个使用此设置的真实示例.
更新(文件名):
关于文件名最常见的是短,小写的文件名.如果您的文件只能用两个词来描述,那么大多数JavaScript项目都使用下划线作为分隔符.
更新(变量):
关于变量,相同的"规则"适用于文件名.然而,原型或类应该使用驼峰式.
更新(styleguides):
vau*_*han 71
使用kebab-case所有的包,文件夹和文件名.
您应该想象某天某个文件夹或文件可能会被提取到自己的包中.包不能包含大写字母.
新包不得在名称中包含大写字母. https://docs.npmjs.com/files/package.json#name
因此,camelCase永远不应该使用.这使得snake_case和kebab-case.
kebab-case是迄今为止最常见的惯例.下划线的唯一用途是内部节点包,这只是早期的惯例.
小智 57
没有惯例.有一些逻辑结构.
我能说的唯一一件事:永远不要使用camelCase文件和目录名.为什么?它可以工作,但在Mac和Windows上,someAction和某些动作之间没有区别.我遇到了这个问题,而不是一次.我需要一个这样的文件:
var isHidden = require('./lib/isHidden');
Run Code Online (Sandbox Code Playgroud)
但遗憾的是我创建了一个小写的文件:lib/ishidden.js.它在Mac上对我有用.它在我的同事的mac上运行良好.测试运行没有错误.部署后我们遇到了一个巨大的错误:
Error: Cannot find module './lib/isHidden'
Run Code Online (Sandbox Code Playgroud)
哦耶.这是一个linux盒子.所以camelCase目录结构可能很危险.这对于在Windows或Mac上开发的同事来说已经足够了.
因此,如果需要,请使用下划线(_)或短划线( - )分隔符.
Vla*_*den 10
基于“ Google JavaScript样式指南 ”
文件名必须全部为小写,并且可以包含下划线(_)或破折号(-),但不能包含其他标点符号。请遵循项目使用的约定。文件名的扩展名必须是.js。
| 归档时间: |
|
| 查看次数: |
83750 次 |
| 最近记录: |