"copy-static-assets" task
这个任务是对 TypeScript 转译器的补充,它将资源复制到输出文件夹,因此可以直接通过 .js 文件引入。
何时使用它
当源代码使用 import 或 require() 引入资源文件时,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"
    // ]
  }
. . .