小编Pet*_*sen的帖子

用于Angular 2的JSPM与WebPack

最近我将JSPM用于我的角度2项目,发现它非常简单方便.在添加新模块和创建捆绑以供生产使用时都是如此.

它基本上只是:

jspm install npm:@angular/somepackage
Run Code Online (Sandbox Code Playgroud)

并且package.json和system.js配置会自动更新.

当我想创建一个生产包时,我只需这样做:

jspm bundle-sfx app/main app-bundle.min.js --minify
Run Code Online (Sandbox Code Playgroud)

并使用它我只是做一个这样的HTML:

 <body>
   <my-app>Loading...</my-app>
   <script src="app-bundle.min.js"></script>
 </body>
Run Code Online (Sandbox Code Playgroud)

它加载并快速运行.用于小型和大型Angular 2应用程序.

开发设置也令人满意 - 重新加载应用程序的速度非常快,调试也很顺利.也可以通过JSPM从NPM存储库中使用几乎任何模块.

在阅读那里的文章时,我得到的印象是人们正在转向使用Angular 2应用程序的webpack.我自己没有移动到webpack,因为我认为我的设置工作正常,webpack似乎更多的配置.

然而,我担心对JSPM的支持会淡出,因为似乎越来越多的人转向webpack.

我应该切换到webpack吗?转换到webpack会给我一些我没有发现的好处吗?

我有一些非常简单的Angular 2快速启动模板,演示了我的设置,可以在这里找到:https://github.com/fintechneo/angular2-templates

非常乐意获得有关切换到webpack的优势的一些意见.


更新2017-03-26

自从发布此问题以来,我发现生产构建需要更快的加载时间.即使JSPM(或webpack)生成优化的bundle,它仍然太大,需要在下载bundle之后编译angular2模板.

所以我找到了Ahead-of-Time编译器手册(https://angular.io/docs/ts/latest/cookbook/aot-compiler.html) - 这使得小包在下载后立即启动.

这需要一个并行设置,尽管使用npm(而不是jspm)安装了所有角度模块.也许可以通过一些努力来使用JSPM,但我还没有考虑过它.JSPM和这个AoT cookbook都使用汇总,因此它将使ngc编译器步骤与JSPM集成,但棘手的部分是让TypeScript使用jspm_packages而不是node_modules.

上面的设置链接使用AoT进行更新,并仍然使用JSPM作为开发环境.

webpack jspm angular

9
推荐指数
1
解决办法
2105
查看次数

Angular:如何获取路由器插座的组件实例

HTML:

<router-outlet></router-outlet>
Run Code Online (Sandbox Code Playgroud)

零件:

@Component({
      selector: 'xx',
      templateUrl: './xx.html',
      styleUrls: ['./xx.css'],
      providers: [ RouterOutlet]
    })
    export class AppComponent {
    constructor(private routeroutlet: RouterOutlet){ }
    getref() {
     console.log(this.routeroutlet);
     console.log('refresh', this.routeroutlet.component);
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误

core.es5.js:1224 ERROR Error: Outlet is not activated
    at RouterOutlet.get [as component] (router.es5.js:5449)
    at AppComponent.onRefreshscrum (app.component.ts:343)
    at Object.eval [as handleEvent] (AppComponent.ngfactory.js:111)
    at Object.handleEvent (core.es5.js:12251)
    at Object.handleEvent (core.es5.js:12975)
    at dispatchEvent (core.es5.js:8863)
    at eval (core.es5.js:11025)
    at SafeSubscriber.schedulerFn [as _next] (core.es5.js:3851)
    at SafeSubscriber.__tryOrUnsub (Subscriber.js:223)
    at SafeSubscriber.next (Subscriber.js:172)
Run Code Online (Sandbox Code Playgroud)

控制台结果:(this.routeroutlet)

RouterOutlet {
parentContexts: ChildrenOutletContexts, 
location: null, …
Run Code Online (Sandbox Code Playgroud)

angular-routing angular-ui-router angular2-routing angular

7
推荐指数
1
解决办法
7240
查看次数

智能合约 WebAssembly 二进制文件存储在 NEAR 协议中的何处/如何?

如何通过探索 NEAR 协议区块链来提取智能合约 WebAssembly 二进制文件?

nearprotocol

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

kubernetes nginx ingress 请求标头或 Cookie 太大

我的 nginx-ingress-controller 位于ingress-nginx命名空间中,我已将 large-client-header-buffers 设置为等4 16k4 32k

kind: ConfigMap
apiVersion: v1
metadata:
  name: nginx-configuration
  namespace: ingress-nginx  
data:
  proxy-buffer-size: "16k"
  large-client-header-buffers: "4 16k"
Run Code Online (Sandbox Code Playgroud)

当我检查 nginx-controller pod 中的配置时,我看到:

 kubectl exec -n ingress-nginx nginx-ingress-controller-65fd579494-jptxh cat /etc/nginx/nginx.conf | grep large_client_header
        large_client_header_buffers     4 16k;
Run Code Online (Sandbox Code Playgroud)

所以一切似乎都配置正确,但我仍然收到错误消息400 Bad Request Request Header Or Cookie Too Large

kubernetes nginx-ingress

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

如何测试NEAR是否已转移?

给定一个转移资金的合约方法:

Promise::new("b.testnet".to_string()).transfer(near_sdk::env::attached_deposit())

您应该如何编写单元测试来检查资金是否已转移?

nearprotocol

3
推荐指数
1
解决办法
101
查看次数