File
fis.file~ File
new File(propsopt)
File,fis 编译过程中,文件会被此类进行封装,对于文件的操作,都是通过此类来完成。
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
path... | String | 文件路径,可以作为多个参数输入,多个参数会被 | |
props | Object | <optional> | 可以默认给文件添加一些属性 |
Properties:
Name | Type | Description |
---|---|---|
ext | String | 文件名后缀。 |
realpath | String | 文件物理地址。 |
realpathNoExt | String | 文件物理地址,没有后缀。 |
subpath | String | 文件基于项目 root 的绝对路径。 |
subpathNoExt | String | 文件基于项目 root 的绝对路径,没有后缀。 |
useCompile | Boolean | 标记是否需要编译。 |
useDomain | Boolean | 标记是否使用带domain的地址。 |
useCache | Boolean | 编译过程中是否采用缓存。 |
useMap | Boolean | 编译后是否将资源信息写入 map.json 表。 |
domain | String | 文件的 domain 信息,在 useDomain 为 true 时会被作用在链接上。 |
release | String | 文件的发布路径,当值为 false 时,文件不会发布。 |
url | String | 文件访问路径。 |
id | String | 文件 id 属性,默认为文件在项目中的绝对路径,不建议修改。 |
requires | Array | 用来记录文件依赖。 |
asyncs | Array | 用来记录异步依赖。 |
links | Array | 用来记录此文件用到了哪些文件。 |
derived | Array | 用来存放派生的文件,比如 sourcemap 文件。 |
extras | Object | 用来存放一些附属信息,注意:此属性将会添加到 map.json 里面。 |
isHtmlLike | Boolean | 标记此文件是否为 html 性质的文件。 |
isCssLike | Boolean | 标记此文件是否为 css 性质的文件。 |
isJsLike | Boolean | 标记此文件是否为 javascript 性质的文件。 |
isJsonLike | Boolean | 标记此文件是否为 json 性质的文件。 |
Methods
addAsyncRequire(id)
添加异步依赖,同一个 ID 只会保留一条记录。
Parameters:
Name | Type | Description |
---|---|---|
id | String | 依赖的文件标识(id) |
addLink(filepath)
向File.links中追加不重复link连接
Parameters:
Name | Type | Description |
---|---|---|
filepath | String | 连接 |
addRequire(id)
添加新的同步依赖,同一个 ID 只会保留一条记录。
Parameters:
Name | Type | Description |
---|---|---|
id | String | 依赖的文件标识(id) |
addSameNameRequire(ext)
处理同名但不同后缀名的require
Parameters:
Name | Type | Description |
---|---|---|
ext | String | 可以指定后缀,如果指定了,则添加指定后缀的同名依赖。 |
defineLikes() → {Undefined}
定义默认的文件类型,如:isHtmlLike、isJsLike、isCssLike。他们是互斥的,当设置其中某个值为 true 时,
其他属性应该为 false.
提取到一个方法里面原因是:isXXXLike 的属性是通过 Object.defineProperties
定义的,当 file 对象从文件 cache 里面反序列回来后,isXxxLike 系列的属性都会丢失。 所以这块需要重新调用(定义)一次。
Returns:
- Type
- Undefined
exists() → {Boolean}
返回文件是否真实存在。
Returns:
- Type
- Boolean
getBase64(prefix) → {String}
返回文件内容的base64编码
Parameters:
Name | Type | Description |
---|---|---|
prefix | Boolean | 是否需要base64格式头, 默认为 |
Returns:
- Type
- String
getCacheData() → {Object}
获取缓存数据, 文件每次编译都会存储一些属性到文件缓存。
默认除了 _xxxx 私有属性外所有的属性都会存入到缓存。
Returns:
- Type
- Object
getContent() → {String|Buffer}
获取文件内容
Returns:
文件内容
- Type
- String | Buffer
getHash() → {String}
获取文件内容的md5序列,多次调用,尽管文件内容有变化,也只会返回第一次调用时根据当时文件内容计算出来的结果。
Returns:
文件内容md5序列后的结果
- Type
- String
getHashRelease(release) → {String}
获取文件的发布路径,会带上 hash 信息,如果设置了 useHash 的话。
Parameters:
Name | Type | Description |
---|---|---|
release | String | 路径,不指定时使用此对象上的 release 属性。 |
Returns:
- Type
- String
getId() → {String}
返回文件 ID
Returns:
- Type
- String
getUrl() → {String}
返回文件url, 跟直接获取 url 属性不同,此方法会受 useHash 和 useDomain 设置影响,会对应加上内容。
Returns:
- Type
- String
isDir() → {Boolean}
判断文件路径是否为文件夹
Returns:
- Type
- Boolean
isFile() → {Boolean}
判断文件路径是否为文件
Returns:
- Type
- Boolean
isImage() → {Boolean}
返回文件是否为图片文件。
Returns:
- Type
- Boolean
isText() → {Boolean}
返回文件是否为文本文件。
Returns:
- Type
- Boolean
removeAsyncRequire(id)
删除异步require路径
Parameters:
Name | Type | Description |
---|---|---|
id | String | 文件id |
removeRequire(id)
删除同步require路径
Parameters:
Name | Type | Description |
---|---|---|
id | String | 文件id |
revertFromCacheData(cached)
当缓存有效时,将缓存数据还原到文件对象上。
Parameters:
Name | Type | Description |
---|---|---|
cached | Object | 缓存数据 |
setContent(c) → {Object}
设置文件内容,可以是字符串或者 Buffer 对象。
Parameters:
Name | Type | Description |
---|---|---|
c | String | Buffer | 文件内容 |
Returns:
返回自身,方便链式调用
- Type
- Object
toString() → {String}
返回真实的物理路径
Returns:
路径
- Type
- String