ikc*_*koR 4 typescript visual-studio-code
我的项目中有两个文件夹,src,我想在其中编写所有代码,dist,我希望在构建所有打字稿文件后有一个准备运行的程序,在构建后,它看起来像这样:
理想情况下,我希望我的构建任务确保 dist 文件夹是 src 文件夹的 1:1 副本,其中所有 .ts 文件都替换为新构建的 .js 文件,并更新所有其他文件(如 .html)(如果我在我构建打字稿时的 src 文件夹。
这似乎是一个很常见的情况,但没有“官方推荐”的方法来做到这一点。(这是相关的 GitHub 问题:ms/TS#30835。)
\n您可以使用几个 npm 包来帮助进行文件系统操作,并使用一些 npm 脚本来定义您想要的行为来解决此问题:
\n首先,安装这些软件包:
\n\nnpm install copyfiles rimraf\nRun Code Online (Sandbox Code Playgroud)\n然后,在您的文件中编写一些 npm 脚本package.json来组合您想要的所有行为:
package.json:
npm install copyfiles rimraf\nRun Code Online (Sandbox Code Playgroud)\n脚本说明:
\nprebuild:(这是一个pre-script,在脚本之前运行)只是在脚本运行之前build删除dist目录及其内容build
build:运行其他脚本:首先是compile脚本,然后(如果成功)copy-assets脚本
compiletsc:根据您的运行来编译您的 TypeScript 项目文件tsconfig.json(大概,根据您的屏幕截图,您已配置compilerOptions.outDir为"dist")
copy-assetssrc:复制从到 的所有文件/文件夹dist(不包括以.ts和结尾的文件.tsx)。我将逐部分进一步解释这一点:
copyfiles:运行命令--all:允许复制所有文件(包括点文件)--up 1:默认情况下,目标目录src将被复制到目标目录dist:相反,这会将所有文件上移一级:将复制到的所有内容都dist/src/直接复制到dist/--exclude "./**/*.{ts,tsx}".ts:一个全局模式,用于排除所有以和结尾的文件.tsx"./src/**/*":目标的全局模式:递归src复制所有文件./dist:复制文件的目标目录安装这两个包并添加 npm 脚本后,您所需要做的就是运行脚本build来编译 TypeScript 项目并将所有资源文件复制到dist:
npm run build\nRun Code Online (Sandbox Code Playgroud)\n例子:
\n./src\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 index.html\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 script.ts\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 script2.ts\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 subdir\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Component.tsx\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 data.json\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 texture.png\n\n./dist\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 index.html\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 script.js\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 script2.js\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 subdir\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Component.js\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 data.json\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 texture.png\nRun Code Online (Sandbox Code Playgroud)\n完毕!
\n| 归档时间: |
|
| 查看次数: |
1517 次 |
| 最近记录: |