gruntjs - Finns det ett sätt att flytta MD-fil i ett TypeScript-projekt till den kompilerade JS-versionen av projektet?
Jag arbetar på en TypeScript-applikation, där varje modul i mitt projekt har en README.md-fil. Projektstrukturen är som följer:
- tsconfig
- src
- actions
- assignShop
- index.ts
- index.test.ts
- README.md
- assignStore
- index.ts
- index.test.ts
- README.md
Och min tsconfig ser ut så här:
{
"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
}
När jag kompilerar mina filer, kompileras de alla till .js i ./lib-katalogen, men jag kan inte ha min README.md för varje kompilerad version av åtgärder.
Uppdatering: 1 Så jag försökte implementera grunt för att utföra följande uppgift men, jag tror att jag behöver lite vägledning. Här är min 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']);
};
Lösningen - 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']);
}
Svar #1
TypeScript-utvecklarna har uttryckligen uteslutit att lägga till en sådan funktion, eftersom de anser att det ligger utanför deras projekts omfattning.
Istället kommer du att behöva använda ett annat byggverktyg, såsom Webpack, Gulp eller Grunt.