angular-cn/packages/platform-server/package.json

44 lines
1.2 KiB
JSON
Raw Normal View History

{
"name": "@angular/platform-server",
"version": "0.0.0-PLACEHOLDER",
"description": "Angular - library for using Angular in Node.js",
"author": "angular",
"license": "MIT",
"engines": {
"node": "^12.14.1 || ^14.0.0"
},
"peerDependencies": {
"@angular/animations": "0.0.0-PLACEHOLDER",
"@angular/common": "0.0.0-PLACEHOLDER",
"@angular/compiler": "0.0.0-PLACEHOLDER",
"@angular/core": "0.0.0-PLACEHOLDER",
"@angular/platform-browser": "0.0.0-PLACEHOLDER",
"@angular/platform-browser-dynamic": "0.0.0-PLACEHOLDER"
},
"dependencies": {
"domino": "^2.1.2",
"tslib": "^2.1.0",
"xhr2": "^0.2.0"
},
"repository": {
"type": "git",
"url": "https://github.com/angular/angular.git",
"directory": "packages/platform-server"
},
"ng-update": {
"packageGroup": "NG_UPDATE_PACKAGE_GROUP"
},
feat(platform-server): allow shimming the global env sooner (#40559) `@angular/platform-server` provides the foundation for rendering an Angular app on the server. In order to achieve that, it uses a server-side DOM implementation (currently [domino][1]). For rendering on the server to work as closely as possible to running the app on the browser, we need to make DOM globals (such as `Element`, `HTMLElement`, etc.), which are normally provided by the browser, available as globals on the server as well. Currently, `@angular/platform-server` achieves this by extending the `global` object with the DOM implementation provided by `domino`. This assignment happens in the [setDomTypes()][2] function, which is [called in a `PLATFORM_INITIALIZER`][3]. While this works in most cases, there are some scenarios where the DOM globals are needed sooner (i.e. before initializing the platform). See, for example, #24551 and #39950 for more details on such issues. This commit provides a way to solve this problem by exposing a side-effect-ful entry-point (`@angular/platform-server/init`), that shims the `global` object with DOM globals. People will be able to import this entry-point in their server-rendered apps before bootstrapping the app (for example, in their `main.server.ts` file). (See also [#39950 (comment)][4].) In a future update, the [`universal` schematics][5] will include such an import by default in newly generated projects. [1]: https://www.npmjs.com/package/domino [2]: https://github.com/angular/angular/blob/0fc8466f1be392917e0c/packages/platform-server/src/domino_adapter.ts#L17-L21 [3]: https://github.com/angular/angular/blob/0fc8466f1be392917e0c/packages/platform-server/src/server.ts#L33 [4]: https://github.com/angular/angular/issues/39950#issuecomment-747598403 [5]: https://github.com/angular/angular-cli/blob/cc51432661eb4ab4b6a3/packages/schematics/angular/universal PR Close #40559
2021-02-11 12:24:52 -05:00
"sideEffects": [
"./bundles/platform-server-init.umd.js",
"./bundles/platform-server-init.umd.min.js",
"./esm2015/init/src/init.js",
"./fesm2015/init.js",
"./__ivy_ngcc__/bundles/platform-server-init.umd.js",
"./__ivy_ngcc__/esm2015/init/src/init.js",
"./__ivy_ngcc__/fesm2015/init.js"
],
"publishConfig":{
"registry":"https://wombat-dressing-room.appspot.com"
}
}