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"
我很难弄清楚将某个文件放在我的 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"