有没有办法将 TypeScript 项目中的 MD 文件移动到项目的编译 JS 版本中?

Is there a way to move MD file in a TypeScript project to the compiled JS version of the project?

我正在开发一个 TypeScript 应用程序,其中我项目的每个模块都有 README.md 文件。项目结构如下:

- tsconfig
- src
    - actions
      - assignShop
       - index.ts
       - index.test.ts
       - README.md
    - assignStore
       - index.ts
       - index.test.ts
       - README.md

我的 tsconfig 如下所示:

{
  "compilerOptions": {
    "allowJs": false,
    "declaration": true, // enable this once all files are .ts and we can remove allowJs
    "esModuleInterop": true,
    "lib": ["es2015", "es2017"],
    "module": "commonjs",
    "moduleResolution": "node",
    "noImplicitReturns": true,
    "noFallthroughCasesInSwitch": true,
    "noUnusedLocals": true,
    "pretty": true,
    "noImplicitAny": true,
    "outDir": "./lib",
    "resolveJsonModule": true,
    "skipLibCheck": true,
    "strict": true,
    "sourceMap": true,
    "target": "es5",

  },
  "include": [
    "src/**/*"
  ],
  "compileOnSave": false
}

每当我编译我的文件时,它们都会在 ./lib 目录中编译为 .js,但我无法为每个已编译的动作版本提供我的 README.md。

更新:1 所以我厌倦了执行 grunt 来执行以下任务,但我认为我需要一些指导。 这是我的 Gruntfile.js:

module.exports = function (grunt) {
  grunt.initConfig({
    clean: ['./lib'],
    ts: {
      default: {
        tsconfig: './tsconfig.json'
      }
    },
    copy: {
        main: {
            expand: true,
            cwd: 'src/',
            src: '**/*.md',
            dest: 'lib/**/*'
        },
      }
  });

  grunt.loadNpmTasks('grunt-contrib-clean');
  grunt.loadNpmTasks('grunt-ts');
  grunt.loadNpmTasks('grunt-contrib-copy');

  grunt.registerTask('default', ['clean', 'ts']);
};

解决方案 - Gruntfile.js

module.exports = function (grunt) {
  grunt.initConfig({
    clean: ['./lib'],
    ts: {
      default: {
        tsconfig: './tsconfig.json'
      }
    },
    copy: {
        main: {
            expand: true,
            cwd: 'src/',
            src: '**/*.md',
            dest: 'lib/'
        },
      }
  });

  grunt.loadNpmTasks('grunt-contrib-clean');
  grunt.loadNpmTasks('grunt-ts');
  grunt.loadNpmTasks('grunt-contrib-copy');

  grunt.registerTask('default', ['clean', 'ts']);
}

TypeScript 开发人员有 explicitly ruled out adding such a feature,因为他们认为它超出了他们的项目范围。

相反,您需要使用其他构建工具,例如 Webpack、Gulp 或 Grunt。