想了解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 2 CLI:超出最大调用堆栈大小时出错
- Angular 4环境准备与Angular cli创建项目详解
- Angular Starter Kit —— Angular 2.0 迁移准备工具 (TypeScript)
- angular – 如何在数据准备好后关闭Loader
Angular cli:准备好生产
我最近将它转换为Angular-cli项目并使用以下命令构建它:
ng build --prod
根据我的理解,我应该能够将“/ dist”文件夹的内容粘贴到测试服务器上并运行它
ng serve
但是,如果“/ dist”文件夹可以独立运行,为什么我无法在我的电脑上作为独立应用程序运行它(即,我无法将dist文件夹的内容复制到PC上的另一个位置并运行它.)
这实际上是我将要放到测试/生产服务器上的第一个应用程序,所以如果我问的是愚蠢的话,请耐心等待.
解决方法
>运行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 / 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-browser:2.4.9
> @ angular / platform-browser-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创建项目详解
本文介绍的是为Angular4.0准备环境和学会使用Angular cli来创建项目的相关内容,分享出来供大家参考学习,需要的朋友们下面来一起看看详细的介绍:
1.环境准备:
1)在开始工作之前我们必须设置好开发环境, 如果你的机器上还没有安装Node.js和npm,请安装他们
(这里特别推荐使用淘宝的镜像cnpm,记得以后把npm的指令改为cnpm就可以了)
npm install -g cnpm --registry=https://registry.npm.taobao.org
然后我们可以通过node -v
和cnpm -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-next-starter-kit 是使用 Angular 1.x 开发的应用准备迁移到 Angular 2.0 的种子项目。
angular – 如何在数据准备好后关闭Loader
它看起来如下:
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()是进行服务调用的方法.
我怎样才能解决这个问题?这是实现加载器的正确方法吗?
就像你可以在那个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的相关信息,请在本站查询。
本文标签: