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 性质的文件。

Source:

Methods

addAsyncRequire(id)

添加异步依赖,同一个 ID 只会保留一条记录。

Parameters:
Name Type Description
id String

依赖的文件标识(id)

Source:

addLink(filepath)

向File.links中追加不重复link连接

Parameters:
Name Type Description
filepath String

连接

Source:

addRequire(id)

添加新的同步依赖,同一个 ID 只会保留一条记录。

Parameters:
Name Type Description
id String

依赖的文件标识(id)

Source:

addSameNameRequire(ext)

处理同名但不同后缀名的require

Parameters:
Name Type Description
ext String

可以指定后缀,如果指定了,则添加指定后缀的同名依赖。

Source:

defineLikes() → {Undefined}

定义默认的文件类型,如:isHtmlLike、isJsLike、isCssLike。他们是互斥的,当设置其中某个值为 true 时,
其他属性应该为 false.

提取到一个方法里面原因是:isXXXLike 的属性是通过 Object.defineProperties
定义的,当 file 对象从文件 cache 里面反序列回来后,isXxxLike 系列的属性都会丢失。 所以这块需要重新调用(定义)一次。

Source:
Returns:
Type
Undefined

exists() → {Boolean}

返回文件是否真实存在。

Source:
Returns:
Type
Boolean

getBase64(prefix) → {String}

返回文件内容的base64编码

Parameters:
Name Type Description
prefix Boolean

是否需要base64格式头, 默认为 true

Source:
Returns:
Type
String

getCacheData() → {Object}

获取缓存数据, 文件每次编译都会存储一些属性到文件缓存。

默认除了 _xxxx 私有属性外所有的属性都会存入到缓存。

Source:
Returns:
Type
Object

getContent() → {String|Buffer}

获取文件内容

Source:
Returns:

文件内容

Type
String | Buffer

getHash() → {String}

获取文件内容的md5序列,多次调用,尽管文件内容有变化,也只会返回第一次调用时根据当时文件内容计算出来的结果。

Source:
Returns:

文件内容md5序列后的结果

Type
String

getHashRelease(release) → {String}

获取文件的发布路径,会带上 hash 信息,如果设置了 useHash 的话。

Parameters:
Name Type Description
release String

路径,不指定时使用此对象上的 release 属性。

Source:
Returns:
Type
String

getId() → {String}

返回文件 ID

Source:
Returns:
Type
String

getUrl() → {String}

返回文件url, 跟直接获取 url 属性不同,此方法会受 useHash 和 useDomain 设置影响,会对应加上内容。

Source:
Returns:
Type
String

isDir() → {Boolean}

判断文件路径是否为文件夹

Source:
Returns:
Type
Boolean

isFile() → {Boolean}

判断文件路径是否为文件

Source:
Returns:
Type
Boolean

isImage() → {Boolean}

返回文件是否为图片文件。

Source:
Returns:
Type
Boolean

isText() → {Boolean}

返回文件是否为文本文件。

Source:
Returns:
Type
Boolean

removeAsyncRequire(id)

删除异步require路径

Parameters:
Name Type Description
id String

文件id

Source:

removeRequire(id)

删除同步require路径

Parameters:
Name Type Description
id String

文件id

Source:

revertFromCacheData(cached)

当缓存有效时,将缓存数据还原到文件对象上。

Parameters:
Name Type Description
cached Object

缓存数据

Source:

setContent(c) → {Object}

设置文件内容,可以是字符串或者 Buffer 对象。

Parameters:
Name Type Description
c String | Buffer

文件内容

Source:
Returns:

返回自身,方便链式调用

Type
Object

toString() → {String}

返回真实的物理路径

Source:
Returns:

路径

Type
String