我对现代 JS 开发比较陌生,我需要关于我所处的这种情况的帮助或建议。
情况:我们有一个支持 IE8 (React 0.14) 的 React-Typescript-Redux 项目。现在我们正在升级到 IE11 和 React 16,但应该支持 IE8。
要求:通过为每个构建使用不同的包和/或配置文件来减少浏览器版本之间的项目维护。
问题:从我目前所做的研究来看,在同一个项目中使用不同的 package.json 文件和 node_modules 文件夹似乎不可能使用选定的工具:npm、Webpack、React、Redux、Typescript。Yarn 似乎支持多个 package.json 文件,但我们希望尽可能避免从 npm 迁移。
当前项目结构:
project_root/
node_modules/
src/
components/
utils/
index.tsx
components.css
index.html
package.json
tsconfig.json
webpack.config.json
我认为可能有效的是引入 IE8 子文件夹及其 package.json 和 node_modules 文件夹,然后以某种方式引用该文件夹以进行构建任务,但现在我不知道如何告诉 npm 在构建时引用它。
建议的项目结构:
project_root/
ie8/
node_modules/
package.json
node_modules/
src/
components/
utils/
index.tsx
components.css
index.html
package.json
tsconfig.json
webpack.config.json
我尝试了在网络上找到的不同东西,包括resolve.modules: [__dirname + "/ie8/node_modules"]
但它似乎不起作用或者我误解了它的作用,因为我Cannot find name 'require'
在几个文件上出错,并且在终端输出中引用了 Typescript 2.8.3 而不是 2.3.4。没有它,项目将使用 IE11 的配置构建。
那么,有人可以肯定地告诉我这是不可能的或提供一些指导吗?这是迄今为止我找到的最接近的答案,但听起来不是最终答案。或者,像这样的项目结构是否可以支持所需的内容或将项目分成两个是最好的选择?
提前致谢。