GVKun编程网logo

Angular cli:准备好生产

14

想了解Angularcli:准备好生产的新动态吗?本文将为您提供详细的信息,此外,我们还将为您介绍关于Angular2CLI:超出最大调用堆栈大小时出错、Angular4环境准备与Angularcli

想了解Angular cli:准备好生产的新动态吗?本文将为您提供详细的信息,此外,我们还将为您介绍关于Angular 2 CLI:超出最大调用堆栈大小时出错、Angular 4环境准备与Angular cli创建项目详解、Angular Starter Kit —— Angular 2.0 迁移准备工具 (TypeScript)、angular – 如何在数据准备好后关闭Loader的新知识。

本文目录一览:

Angular cli:准备好生产

Angular cli:准备好生产

我编写了我的第一个Angular 2应用程序,我想把它放到测试服务器上.

我最近将它转换为Angular-cli项目并使用以下命令构建它:

ng build --prod

根据我的理解,我应该能够将“/ dist”文件夹的内容粘贴到测试服务器上并运行它

ng serve

但是,如果“/ dist”文件夹可以独立运行,为什么我无法在我的电脑上作为独立应用程序运行它(即,我无法将dist文件夹的内容复制到PC上的另一个位置并运行它.)

这实际上是我将要放到测试/生产服务器上的第一个应用程序,所以如果我问的是愚蠢的话,请耐心等待.

解决方法

您不应该,我认为不能,使用ng服务来发布您的构建.使用ng build创建的文件可以上传到Web服务器并从那里提供服务.

>运行ng build -e = prod –prod –no-sourcemap –aot

虽然最新版本的angular-cli默认没有源图,但值得注意. -e = prod将确保它使用环境文件夹中定义的生产环境.最后一件事是–aot.如果你的项目中没有特殊的东西,那么很有可能你可以使用提前编译器进行预编译.但是,您可能遇到问题,您可以使用ng serve –aot解决这些问题,或者完全删除–aot.

>然后,您可以继续将dist文件夹的内容复制到您的网络服务器.值得注意的是,您应确保服务器上的所有非现有文件请求都将重定向到index.html,并且指向您的应用程序的URL位于根目录中.

这意味着对于例如Nginx的index.html重定向,您可以将其放在服务器配置块中:

location / {
  try_files $uri $uri/ /index.html;
}

这是因为www.example.com服务于dist文件夹内创建的index.html.如果由于某种原因您想从子文件夹(例如www.example.com/subfolder)提供应用程序,那么您应该修改< base>生成的index.html内的标记指向此子文件夹.

如果要在本地测试生产版本,可以选择安装lite-server.

npm install -g lite-server

然后在控制台中导航到path / to / project / root / dist,并运行lite-server.这将创建一个Web服务器并打开您的浏览器,并提供生成的index.html

如果你使用Nginx并希望很酷并静态地提供生成的.gz文件,你可以将它放在你的Nginx gzip配置中:

gzip on;
gzip_static on;

Angular 2 CLI:超出最大调用堆栈大小时出错

Angular 2 CLI:超出最大调用堆栈大小时出错

我的Ng2项目有问题需要3到4天.

版本.

> @ angular / cli:1.0.0-rc.2
>节点:6.9.2
> os:win32 x64
> @ angular / common:2.4.9
> @ angular / compiler:2.4.9
> @ angular / core:2.4.9
> @ angular / forms:2.4.9
> @ angular / http:2.4.9
> @ angular / platform-b​​rowser:2.4.9
> @ angular / platform-b​​rowser-dynamic:2.4.9
> @ angular / router:3.4.9
> @ angular / cli:1.0.0-rc.2
> @ angular / compiler-cli:2.4.9

Repro步骤.

我运行serv / ng测试或ng build,我有:“超出最大调用堆栈大小的错误”

失败给出的日志.

“服务”之后

$ng serve
** NG Live Development Server is running on http://localhost:4200 **
Hash: a73c4ecdb8222366629e
Time: 16536ms
chunk    {0} polyfills.bundle.js,polyfills.bundle.js.map (polyfills) 405 kB {5} [initial] [rendered]
chunk    {1} main.bundle.js,main.bundle.js.map (main) 41.1 kB {4} [initial] [rendered]
chunk    {2} styles.bundle.js,styles.bundle.js.map (styles) 149 kB {5} [initial] [rendered]
chunk    {3} scripts.bundle.js,scripts.bundle.js.map (scripts) 244 kB {5} [initial] [rendered]
chunk    {4} vendor.bundle.js,vendor.bundle.js.map (vendor) 2.75 MB [initial] [rendered]
chunk    {5} inline.bundle.js,inline.bundle.js.map (inline) 0 bytes [entry] [rendered]

ERROR in Maximum call stack size exceeded
webpack: Failed to compile.

我节省了一次,一切都没问题:

$ng serve
** NG Live Development Server is running on http://localhost:4200 **
Hash: a73c4ecdb8222366629e
Time: 16536ms
chunk    {0} polyfills.bundle.js,inline.bundle.js.map (inline) 0 bytes [entry] [rendered]

ERROR in Maximum call stack size exceeded
webpack: Failed to compile.
webpack: Compiling...
Hash: 02fd7618c3e2de3db52e
Time: 9915ms
chunk    {0} 0.chunk.js,0.chunk.js.map 926 kB {1} {2} {3} {5} [rendered]
chunk    {1} 1.chunk.js,1.chunk.js.map 397 kB {0} {2} {3} {5} [rendered]
chunk    {2} 2.chunk.js,2.chunk.js.map 33.1 kB {0} {1} {3} {5} [rendered]
chunk    {3} 3.chunk.js,3.chunk.js.map 2.96 kB {0} {1} {2} {5} [rendered]
chunk    {4} polyfills.bundle.js,polyfills.bundle.js.map (polyfills) 405 kB {9} [initial] [rendered]
chunk    {5} main.bundle.js,main.bundle.js.map (main) 41.1 kB {8} [initial] [rendered]
chunk    {6} styles.bundle.js,styles.bundle.js.map (styles) 149 kB {9} [initial] [rendered]
chunk    {7} scripts.bundle.js,scripts.bundle.js.map (scripts) 244 kB {9} [initial] [rendered]
chunk    {8} vendor.bundle.js,vendor.bundle.js.map (vendor) 2.75 MB [initial] [rendered]
chunk    {9} inline.bundle.js,inline.bundle.js.map (inline) 0 bytes [entry] [rendered]
webpack: Compiled successfully.

而对于“ng测试”是一样的.

有什么想法解决这个问题?

解决方法

我遇到了同样的错误.通过删除不必要的导入解决.

导致此错误的原因是您有循环模块依赖性问题.

For example:

‘A’ module imports (dependent to) ‘B’ module

‘B’ module imports (dependent to) ‘A’ module

我建议你构建一个通用模块,其他模块应该导入公共模块.

如果你有不必要的导入删除不必要的导入

Angular 4环境准备与Angular cli创建项目详解

Angular 4环境准备与Angular cli创建项目详解

本文介绍的是为Angular4.0准备环境和学会使用Angular cli来创建项目的相关内容,分享出来供大家参考学习,需要的朋友们下面来一起看看详细的介绍:

1.环境准备:

1)在开始工作之前我们必须设置好开发环境, 如果你的机器上还没有安装Node.js和npm,请安装他们
(这里特别推荐使用淘宝的镜像cnpm,记得以后把npm的指令改为cnpm就可以了)

npm install -g cnpm --registry=https://registry.npm.taobao.org

然后我们可以通过node -vcnpm -v来分别查看node和cnpm安装的版本和结果

node -v
cnpm -v

2)安装全局Angular cli

cnpm install -g @angular/cli

2.创建新的项目

打开终端窗口(这里我使用的是webstorm的Terminal,也可以使用计算机自带的powershell)

ng new my-app

项目会很快创建完成,接下来你会看到

Installing packages for tooling via npm

这里如果你选这了淘宝的cnmp镜像,应该最好在安装完全局Angular cli后设置一下,保证正常下载工具

ng set global packageManage = cnpm

然后我们的项目就创建完成了

我们会发现在文档中有很多文件,这里参考Angular官方文档 ,以便认识这些文件的作用。

3.在项目中引入bootstrap和jQuery

这里我使用webstorm的Terminal,直接在终端操作

cnpm install bootstrap --save 
cnpm install jquery --save

我们在项目中就添加了bootstrap和jQuery,我们可以在node_modules文件夹中找到他们(这个文件夹放的是第三方库);

然后我们需要操作.angular-cli.json文件,把bootstrap和jQuery添加进去:

这里需要注意的是:因为angular用的是微软开发的typescript语言,我们需要在终端做下面的操作,以便让typescript认识bootstrap和jQuery一些字符(比如jQuery的$):

cnpm install @types/bootstrap --save-dev
cnpm install @types/jquery --save-dev

这样我们就在项目中正常使用bootstrap和jQuery了

4)为项目添加组件

ng g component navbar

5)项目的启动

启动项目我们可以直接通过:

ng serve

或者是

npm start

这两个的默认端口都是4200:http://localhost:4200

这里你也可以修改默认的端口:

ng serve -p 3000

6)最后项目的打包

用angular cli创建的项目会有很多文件,我们就需要打包后再发行:

ng build

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。

您可能感兴趣的文章:
  • 简单谈谈关于Angular Cli打包的事
  • Angularjs为ng-click事件传递参数
  • Angular CLI 安装和使用教程
  • Angular2使用Angular CLI快速搭建工程(一)
  • 使用Angular CLI进行Build(构建)和Serve详解
  • 详解Angular-Cli中引用第三方库
  • 详解基于angular-cli配置代理解决跨域请求问题
  • 使用Angular CLI生成路由的方法
  • 使用Angular Cli如何创建Angular私有库详解

Angular Starter Kit —— Angular 2.0 迁移准备工具 (TypeScript)

Angular Starter Kit —— Angular 2.0 迁移准备工具 (TypeScript)

angular-next-starter-kit 是使用 Angular 1.x 开发的应用准备迁移到 Angular 2.0 的种子项目。

angular – 如何在数据准备好后关闭Loader

angular – 如何在数据准备好后关闭Loader

在我的Ionic 2应用程序中,我有一个消耗服务的组件,该服务使http GET获取一些数据.然后我的组件调用此服务,当数据可用时,它会设置并显示它.

它看起来如下:

export class Farmlist implements OnInit {

  items: Object;


  constructor(public testService: TestService,public nav: NavController){
  }

  ngOnInit(){

    this.getData()
  }

  getData(){

    let loading = Loading.create({
      content: 'Please wait..',spinner: 'crescent'
    })

    this.nav.present(loading)

    this.testService.fetchData().then(data => this.items = data)

  }
...

}

当我的组件异步提取数据时,我试图让一个加载器旋转,一旦数据可用,我希望加载器消失.

但是,使用我当前的代码,即使数据可用并显示,微调器也会继续旋转,如屏幕截图所示:

getData()是进行服务调用的方法.
我怎样才能解决这个问题?这是实现加载器的正确方法吗?

你可以找到一个 working plunker here.

就像你可以在那个plunker的代码中看到的那样,我会做一些更改,以使你的代码正常工作:

export class Farmlist implements OnInit {

  items: Object;

  // Define the loading var here,so we can access later when the information is ready
  loading : any;

  constructor(public testService: TestService,public nav: NavController){
  }

  // Instead of 'ngOnInit',I would use 'ionViewWillEnter'
  ionViewWillEnter(){
    this.getData()
  }

  getData(){

    this.loading = Loading.create({
      content: 'Please wait..',spinner: 'crescent'
    })

    this.nav.present(this.loading)

    this.testService.fetchData().then(data => { 
                                       this.items = data;

                                       // After we get the data,we hide the loading
                                       this.hideLoading()});

  }

  // I 've added this method so we can grab the loading var and use it 
  // to hide the loading component.
  private hideLoading(){
    this.loading.dismiss();
  }
...

}

================================

更新:

截至Ionic 2.0.0-beta.8(2016-06-06)changelog发布:

onPageWillEnter已重命名为ionViewWillEnter

我们今天的关于Angular cli:准备好生产的分享已经告一段落,感谢您的关注,如果您想了解更多关于Angular 2 CLI:超出最大调用堆栈大小时出错、Angular 4环境准备与Angular cli创建项目详解、Angular Starter Kit —— Angular 2.0 迁移准备工具 (TypeScript)、angular – 如何在数据准备好后关闭Loader的相关信息,请在本站查询。

本文标签: