如何为服务器定位 ES6 并为客户端定位 ES5

How to Target ES6 for Server and ES5 for Client

我正在创建一个项目,其中节点在服务器上,Angular 2 在客户端上。我想在整个项目中使用 Typescript。我想为服务器定位 ES6,因为节点支持它,但为客户端定位 ES5。目前我的目录结构看起来像这样。

├── app.js
├── something.js
├── tsconfig.json
├── wwwroot
│   ├── index.html
│   ├── main.ts
│   ├── components
│   │   ├── mycomponent.ts

我希望 wwwroot 以上的所有内容都以 ES6 为目标,但 wwwroot 内的所有内容都以 ES5 为目标。我尝试将第二个 tsconfig.json 放入 wwwroot 文件夹中,但这似乎不起作用。我正在使用 Atom 的自动编译功能,如果它有任何相关性的话。

您可以使用 babel 将 es6 javascript 转换为您想要的任何 ecmascript 风格。

http://babeljs.io/

我也有类似情况,我的做法是:

- project-root
  - scripts
    - tsconfig.json
  - wwwroot
    - scripts
      - tsconfig.json
    - html
      - index.html
    - styles
      - index.css

服务器的 scripts/tsconfig.json 目标 es6,客户端的 wwwroot/scripts/tsconfig.json 目标 es5

您可以使用 Babel 将 nodejs 尚未实现的内容转译为 es5,使用预设 "babel-preset-es2015-node6"

您可以使用例如节点中的脚本仅转译您想要 es5 的目录 package.json:

"prestart": "babel server-source --out-dir dist/source"