We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
jdfx对文件路径的拼写方式进行了一些调整,这里对各种情况进行一下说明。假设你的config.json中有如下配置:
config.json
{ "projectPath": "jdf-test" }
项目的目录结构如下所示:
jdf-test ├── config.json ├── html └── index.html ├── js └── a.js └── b.js ├── css └── style.css └── i └── icon.png
现在引用文件的时候你可以使用类似./,../,../../的相对路径表示方式,例如:
./
../
../../
html/index.html
<script src="../js/a.js"></script>
那么它就会被编译成:
<script src="//misc.360buyimg.com/jdf-test/js/a.js"></script>
/
以/开头的路径,会被认为是相对于项目根目录的绝对路径。例如还是上面html文件引用js的例子,我还可以写成:
<script src="/js/a.js"></script>
编译之后的结果还是:
require
用require加载文件,并且文件路径以字母开头的,会被直接添加上cdn然后返回,其它情况还是会以相对路径处理。例如:
cdn
require("jdf/2.0.0/ui/dialog/1.0.0/dialog"); require("a.js");
然后它们会被编译成:
require("misc.360buyimg.com/jdf/2.0.0/ui/dialog/1.0.0/dialog"); require("misc.360buyimg.com/a.js");
相要引用当前目录的文件,必须加上./,例如:
require("./a.js");
seajs.use
用 seajs.use加载文件,文件路径以字母开头的,会被直接添加cdn然后返回,其它情况还是会以相对路径处理。例如:
seajs.use(["jdf/2.0.0/ui/dialog/1.0.0/dialog"]);
然后会被编译为:
seajs.use(["misc.360buyimg.com/jdf/2.0.0/ui/dialog/1.0.0/dialog"])
http://
https://
//
针对此类绝对路径,jdfx不做任何处理。
jdfx
The text was updated successfully, but these errors were encountered:
路径分为四类:
包括http://, https://, //这种url
require("http://misc.360buyimg.com/jdf/2.0.0/ui/dialog/1.0.0/dialog"); require("https://misc.360buyimg.com/jdf/2.0.0/ui/dialog/1.0.0/dialog"); require("//misc.360buyimg.com/jdf/2.0.0/ui/dialog/1.0.0/dialog");
这种全路径url是不会做任何改动直接输出的。
以/打头的路径均为绝对路径,在jdf中,绝对路径的根目录为项目根目录,也就是config.json所在目录
比如cdn指定为"cdn": "//misc.360buyimg.com",工程输出目录"projectPath": "JDC_vituals_train/1.0.0"
require("/widget/nav/nav.js"); require("/jdf/2.0.0/ui/dialog/1.0.0/dialog"); // 错误引用,应该采用线上组件路径
将输出:
require("//misc.360buyimg.com/JDC_vituals_train/1.0.0/widget/nav/nav.js"); require("//misc.360buyimg.com/JDC_vituals_train/1.0.0/jdf/2.0.0/ui/dialog/1.0.0/dialog");
以.打头的路径均为相对路径
.
require("../nav/nav.js"); // 当前目录为 /widget/header/header.js require("./common.js"); // 当前目录为 /js/index.js
require("//misc.360buyimg.com/JDC_vituals_train/1.0.0/widget/nav/nav.js"); require("//misc.360buyimg.com/JDC_vituals_train/1.0.0/js/common.js");
这部分是容易令人困惑的,如果调用jdfui或者popui组件,那么这部分就是需要查看的。 对于jdfui和popui,写全路径是麻烦的,因此采取了折中办法,将cdn域名//misc.360buyimg.com去掉,只保留后面的路径,因此得到/jdf/2.0.0/ui/dialog/1.0.0/dialog,但是第一个/和绝对路径冲突,因此删除这个/,得到jdf/2.0.0/ui/dialog/1.0.0/dialog,这个路径就是线上组件路径的简写。
/jdf/2.0.0/ui/dialog/1.0.0/dialog
jdf/2.0.0/ui/dialog/1.0.0/dialog
对于这类简写,编译时将直接和cdn连接,得到
//misc.360buyimg.com/jdf/2.0.0/ui/dialog/1.0.0/dialog
Sorry, something went wrong.
No branches or pull requests
jdfx对文件路径的拼写方式进行了一些调整,这里对各种情况进行一下说明。假设你的
config.json
中有如下配置:项目的目录结构如下所示:
1、相对路径
现在引用文件的时候你可以使用类似
./
,../
,../../
的相对路径表示方式,例如:html/index.html
中引用了一个js文件:那么它就会被编译成:
2、以
/
开头的绝对路径以
/
开头的路径,会被认为是相对于项目根目录的绝对路径。例如还是上面html文件引用js的例子,我还可以写成:编译之后的结果还是:
3、使用
require
加载文件用
require
加载文件,并且文件路径以字母开头的,会被直接添加上cdn
然后返回,其它情况还是会以相对路径处理。例如:然后它们会被编译成:
相要引用当前目录的文件,必须加上
./
,例如:4、使用
seajs.use
加载文件用
seajs.use
加载文件,文件路径以字母开头的,会被直接添加cdn
然后返回,其它情况还是会以相对路径处理。例如:然后会被编译为:
5、以
http://
、https://
和//
开头的绝对路径地址针对此类绝对路径,
jdfx
不做任何处理。The text was updated successfully, but these errors were encountered: