JS 项目文件放置

JS Project file placement

我很难弄清楚将某个文件放在我的 javascript 项目中的什么位置。

我有一个相当大的 JSON 对象代表 ISO 语言代码:

{"code":"nl","name":"Dutch","nativeName":"Nederlands, Vlaams"},
{"code":"en","name":"English","nativeName":"English"},
{"code":"eo","name":"Esperanto","nativeName":"Esperanto"},
{"code":"et","name":"Estonian","nativeName":"eesti, eesti keel"},
{"code":"ee","name":"Ewe","nativeName":"Eʋegbe"},

我不想从 API 中检索此信息,因为此信息相当静态,不会经常更改。

我只是'importing'需要引用的JS文件中的这个ISO语言代码Object文件

但是,我不知道该文件实际放在哪里。

我当前的项目文件结构:

root/
    package.json
    webpack.config.js
    node_modules/
    dist/
    src/
        index.html
        js/
            models/
            views/
            config.js
            index.js -- (single application controller)
            iso-language-codes.js

如您所见,'iso-language-codes.js' 与应用程序控制器处于同一级别 'index.js.'

我知道这很弱,但我应该把它放在哪里?大多数情况下,这种东西是偏好的,但逻辑告诉我我应该创建一个新的 'data' 文件夹并将 'iso-language-codes.js' 放在新目录中,如下所示:

src/
    index.html
    js/
        models/
        views/
        config.js
        index.js -- (single application controller)
        data/
            iso-language-codes.js

非常感谢任何建议。

花了很多时间在谷歌上搜索和搜索堆栈,但找不到任何东西来回答我的具体问题。如果有人有什么可以参考的,那就太好了。

你的思路很好。将静态数据文件放在子目录中没有错(语言和国家的 ISO 代码就是典型的例子)。

不过,大多数人不喜欢 data 这个名字。太笼统了,一切都是数据。典型的名称是 assets/resources/ 甚至 iso-codes/,如果您想要具体的话。它没有错,或者以上的组合。

MVxxx 目录结构旨在将您的想法组织到模型和视图中,并使维护者的工作更轻松。它不是一成不变的,每个项目都是独一无二的。

此外,当项目流量很大时,人们通常会将此类文件重新定位到 CDN,以缩短加载时间。那么您的 URL 将类似于 https://some-cdn.example.com/resources/iso-codes/lang.js。也就是说,您可以以一种易于分发到多个服务器甚至服务的方式来考虑目录。

"you can think of the directories in a way that would be easy to distribute to multiple servers or even services":

https://some-cdn.example.com/resources/iso-codes/lang.js

我注意到 'iso-codes,' 之前的 URI 段 'resources',所以我想我可以对图像进行分组,sass 资源下的样式以及 iso 代码。抱歉,之前忘记说图片和样式了。

这是旧结构:

src/
    index.html
    images/
    sass/
    js/
        models/
        views/
        config.js
        index.js -- (single application controller)
        assets/
            iso-language-codes.js

下面是将 ISO 内容(不再位于 'js' 文件夹下)、图像和 sass 样式分组在一个公共 'resources' 文件夹下的新提议结构。

src/
    index.html
    resources/
        iso-codes/
            lang.js
        images/
        sass/
    js/
        models/
        views/
        config.js
        index.js -- (app controller)

这是否符合您的格言? "you can think of the directories in a way that would be easy to distribute to multiple servers or even services"