gpt4 book ai didi

node.js - node.js 的 commonJS 和 reactjs 的 es6 的多个 tsconfig.json 问题

转载 作者:搜寻专家 更新时间:2023-10-30 21:50:30 26 4
gpt4 key购买 nike

我当前的 typescript 文件夹结构:

ts_dev
--client
*components.tsx
*tsconfig.json

--server
*server.ts
*tsconfig.json
--share
*utility.ts

Node.js 服务器 需要使用commonjs 模块,es2015 用于客户端 端组件。我把clientserver使用的share文件夹放在server目录下,因为它需要commonJS 用于 Node.js。

服务器中的tsconfig.json:

{
"compilerOptions": {
"module": "commonJS",
"target": "es2015",
"moduleResolution": "node",
"outDir": "../../src",
"lib": ["es6", "dom"],
"types": ["reflect-metadata","system"],
"jsx": "react"
},
"exclude": [
"node_modules",
]
}

客户端中的tsconfig.json:

{
"compilerOptions": {
"module": "es2015",
"target": "es2015",
"moduleResolution": "node",
"outDir": "../../src",
"lib": ["es6", "dom"],
"types": ["reflect-metadata","system"],
"jsx": "react"
},
"exclude": [
"node_modules",
]
}

但是我发现 share 中的脚本总是符合 es6(使用导出、导入等)而不是 commonJS,这会破坏我的服务器。我怀疑它是由 client 中的 tsconfig 引起的。我该怎么做才能解决这个问题?

最佳答案

我建议在每个带有文件 glob 的 tsconfig.json 文件中使用 include 选项,以限制通过每个配置文件编译哪些文件。

我通过使用不同的 outDirs 解决了我的类似问题。我认为发生在你身上的是你编译了两次源文件,最后一次将 JS 编译为 es2015,覆盖了第一次。换句话说,首先编译 server 版本,然后编译并覆盖 client 版本,因为输出将转到同一目录。

关于node.js - node.js 的 commonJS 和 reactjs 的 es6 的多个 tsconfig.json 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45455711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com