Dou*_*dou 3 build server-side-rendering app-shell angular-cli-v9
我使用 Angular CLI 9 构建了一个应用程序。我package.json使用以下命令修补了该文件:
{
"scripts": {
"build:prod": "ng build --prod --subresource-integrity",
"prebuild:prod": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\"}' ts-node ./sitemap_generator.ts"
}
}
Run Code Online (Sandbox Code Playgroud)
因此,当我调用 时npm run build:prod,我的 2 个命令将被执行,并且编译器生成的输出文件包含 SRI。
现在,我添加了 appShell :
npm run ng generate appShell -- --client-project my-project
要使用appShell运行构建,我必须使用以下命令:
npm run ng run my-project:app-shell:production
主要问题
但是这个命令调用文件my-project:build:production的配置angular.json,并且不接受参数--subresource-integrity:/
如何修补它以使用SRI 进行 appShell 生产构建?
勇敢者的第二个问题
此 appShell 构建server/在 中创建一个文件夹dist/。它只包含一个main.js文件。我想它在 Node 内部使用来构建 appShell ;有人可以证实吗?那么,我也可以使用 Unversal 与这个架构来为搜索引擎做一些 SSR 吗?
谢谢 !
好吧,我通过编辑 angular.json 找到了一种方法:
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "my-project",
"projects": {
"oce-training": {
"architect": {
"build": {
"configurations": {
"production": {
"subresourceIntegrity": true,
}
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,我们无法覆盖package.jsonCLI 命令或通过 CLI 命令进行覆盖,但这对于我的情况来说已经足够了。
现在我有package.json:
{
"scripts": {
"build:prod": "ng run oce-training:app-shell:production",
"prebuild:prod": "TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\"}' ts-node ./sitemap_generator.ts"
},
}
Run Code Online (Sandbox Code Playgroud)
我关于 SSR 的问题仍然存在,但这可能是另一个 Stackoverflow 帖子;)
| 归档时间: |
|
| 查看次数: |
1466 次 |
| 最近记录: |