Pra*_*kar 3 build node.js typescript webpack package.json
我在我的节点项目中使用 Typescript,这是我的 tsconfig -
{
"compilerOptions": {
"module": "commonjs",
"esModuleInterop": true,
"target": "es6",
"noImplicitAny": true,
"moduleResolution": "node",
"sourceMap": true,
"outDir": "dist/application",
"baseUrl": "./src",
"paths": {
"*": [
"node_modules/*",
"src/shared/types/*"
]
}
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules"
],
"typedocOptions": {
"mode": "modules",
"out": "docs"
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的应用程序文件夹结构 -
.
??? dist
? ??? application
? ??? app.js
? ??? app.js.map
? ??? modules
? ??? shared
??? environments
? ??? .env.development
??? node_modules
??? nodemon.json
??? package-lock.json
??? package.json
??? security
? ??? domain.crt
? ??? domain.key
??? src
? ??? app.ts
? ??? modules
? ? ??? chat
? ? ??? main-controller.ts
? ? ??? sso
? ??? shared
? ??? constants
? ??? models
? ??? types
? ??? utils
??? tsconfig.json
??? typedoc.json
Run Code Online (Sandbox Code Playgroud)
编译后,Typescript 编译器将所有内容放在 .dist/application 中。
在开发过程中,我的主文件 (app.ts) 在 ./src/app.ts 中。在这个 app.ts 文件中,我试图读取 ./src/app.ts 中的 .env.development 文件。这就是我在 app.ts 中读取此文件的方式 -
config({ path: resolve(Utils.getAppRoot(), "../environments/.env.development") });
但是在运行时系统无法解析 .env 文件的路径,因为 TS 编译器将 app.ts 代码放在 ./dist/application/app.js 中,并且 Node 无法找到 .env 文件的路径相对于当前的根路径。
要解决此问题,我需要在编译时将所有配置/静态文件(此处为 .env 文件)复制到 ./dist 文件夹中。
有人可以帮我设置 ts-config 以便在编译时将这些静态文件复制到 ./dist/folder 吗?
我不认为你可以使用 TypeScript 编译器来做到这一点。相反,我建议使用 NPM 脚本来执行此操作。您可以为每个目标环境定义单独的构建任务。例如,您可以定义build-dev任务来为开发环境构建项目,如下所示。
"build-dev": "cp .env.development ./dist/.env && tsc"
Run Code Online (Sandbox Code Playgroud)
您可以为每个环境创建一个脚本并将正确的.env文件复制到文件dist夹中。然后,您可以使用 NPM run 命令运行这些任务,例如:
npm run build-dev
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2569 次 |
| 最近记录: |