小编Mid*_*orm的帖子

从回购中安装Npm不能运行`prepare`

我有一个用于内部git服务器上托管的常见组件的npm软件包。由于某种原因,当我调用npm install另一个项目时,我想在其中使用它将不会运行该prepare挂钩。显然,这不起作用,因为npm软件包需要/distnode_modules中的文件夹才能使用该软件包。

我已经尝试过诸如使用不赞成使用的prepublish钩子之类的方法,即使这样也不会被调用。我还尝试做postinstall一下看是否可以在安装后进行构建,但是该钩子确实被称为失败,因为未安装devDependencies

package.json

{
  "name": "common-components",
  "version": "0.1.0",
  "scripts": {
    "prepare": "npm run build",
    "build": "ng build",
    ...
  },
  "private": true,
  "dependencies": {
    ...
  },
  "devDependencies": {
    ...
  },
}
Run Code Online (Sandbox Code Playgroud)

用于安装的命令

npm install --save git+ssh://{URL-to-common-components-repo}}
Run Code Online (Sandbox Code Playgroud)

我已经通读了npm-scripts文档https://docs.npmjs.com/misc/scripts,似乎他们坚持认为prepare对于此确切用例应始终调用钩子

更新5/6/2019

就像我注意到的那样,我在NPM社区https://npm.community/t/using-npm-ci-does-not-run-prepare-script-for-git-modules/632/4上发现了这个错误。

我正在使用npm 6.4.1,它应该根据错误工作

node.js npm npm-install npm-scripts

5
推荐指数
2
解决办法
370
查看次数

Angular Universal无法在路由器出口内呈现内容

我正在尝试通过此链接https://angular.io/guide/universal使用Angular Universal使用SSR渲染Angular 7应用程序。我以为我可以从那里开始一切工作,因为我能够查看页面源代码并看到呈现给页面的app.component内部的所有内容。但是,我无法在router-outlet标记内渲染任何路线

我只是简单地剥离了我的应用程序,以完全按照文档中的说明进行操作。我在其中读到了一些有关确保ModuleMapLoaderModule在app.server.module内部的内容,以便进行延迟加载。默认情况下,angular-cli命令会附带此命令,因此我不确定发生了什么。

app.server.module

import { NgModule } from '@angular/core';
import { ServerModule } from '@angular/platform-server';
import { ModuleMapLoaderModule } from '@nguniversal/module-map-ngfactory-loader';

import { AppComponent } from './app.component';
import { AppModule } from './app.module';

@NgModule({
  imports: [
    AppModule,
    ServerModule,
    ModuleMapLoaderModule,
  ],
  bootstrap: [AppComponent],
})
export class AppServerModule {}
Run Code Online (Sandbox Code Playgroud)

tsconfig.server.json

  "extends": "./tsconfig.app.json",
  "compilerOptions": {
    "outDir": "../out-tsc/app-server",
  },
  "angularCompilerOptions": {
    "entryModule": "app/app.server.module#AppServerModule"
  }
}
Run Code Online (Sandbox Code Playgroud)

server.ts

import 'zone.js/dist/zone-node';
import { enableProdMode } from '@angular/core';
// Express …
Run Code Online (Sandbox Code Playgroud)

universal angular-universal ssr angular angular7

5
推荐指数
1
解决办法
789
查看次数