有没有办法将 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。
我正在开发一个 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。