Rush StackShopBlogEvents
跳到主要内容
版本:0.50.0

"copy-static-assets" task

这个任务是对 TypeScript 转译器的补充,它将资源复制到输出文件夹,因此可以直接通过 .js 文件引入。

何时使用它

当源代码使用 importrequire() 引入资源文件时,copy-static-assets 任务会被调用。例如,React 项目以下面形式引入了 src/style.css 文件:

src/index.tsx

import './styles.css';

. . .

在 Heft 的标准配置中,TypeScript 编译器读取 src/**/.ts 作为输入并将 lib/**/.js 作为输出。当 Webpack 在 lib/index.js 中被调用时,它将处理其中的 require("./styles.css"); 并把文件路径为 lib/styles.css 的文件打包。(而不是 TypeScript 代码中的 src/styles.css)。

package.json dependencies

无 - 这个功能被 Heft 内部实现。

配置文件

接着上面的例子,我们可以通过 typescript.json 下的 "staticAssetsToCopy" 字段复制 style.css 文件,例如:

<project folder>/config/typescript.json

  . . .

/**
* 配置需要拷贝到 TypeScript 产物目录下的额外配置文件,
* 例如被 import 语句解析到的文件。
*/
"staticAssetsToCopy": {
/**
* 应该从源目录拷贝到目标目录的文件扩展名。
*/
// "fileExtensions": [
// ".json", ".css"
// ],

"fileExtensions": [
".css"
],

/**
* 应该被包含的 Glob 语法
*/
// "includeGlobs": [
// "some/path/*.js"
// ],

/**
* 应该被排除的 Glob 语法,
* 它排除了 "includeGlobs" 和 "fileExtensions" 中的匹配项。
*/
// "excludeGlobs": [
// "some/path/*.css"
// ]
}

. . .