gulp+webpack+angular1的一点小经验(第二部分webpack包起来的angular1)
又一周过去了,项目也已经做得有点模样了。收集来一些小经验,分享给大家,有疏漏之处,还望指正,海涵。
上周整合了gulp与webpack,那么工具准备差不多了,我们就开始编码吧。编码的框架就是angular了(现在已经出了es6了,配合angular2其实很酷,有兴趣的朋友们去玩喽,这里还是angular1)。
从哪开始呢?对的,我们要先有个angular。还要能让webpack通过一句:
require('angular');
完成导入。这样的话我就先去官网下载了一个angular.js文件,然后在我的webpack的入口文件index.js里这样写:
require('./angular.js');
事实证明这样写是错的。。。然后我就看网上的哥哥们怎么写,他们的代码里都是直接这样:
require('angular');
我就用npm来安装了一个angular
npm install --save-dev angular
然后,我在index.js里这样写:
var angular = require('angular');
var App = angular.module("App",[]);
ok,这样就对了。那么我们接下来要给angular加个ui-router的插件。那就采用相同的办法了:
首先要:
npm install --save-dev angular-ui-router
然后:
var angular = require('angular');
var uiRouter = require('angular-ui-router');
var App = angular.module("App",[uiRouter ]);
这样没有问题,可以简写一下:
var angular = require('angular');
var App = angular.module("App",[
require('angular-ui-router')
]);
那么我们自定义的module要怎么加入到App的依赖中去呢?我们自己写的又不能用npm去安装。
假如我在index.js(webpack的入口文件)的同级目录下,有个文件夹modules,里边放的是写好的模块文件如myModule.js,这是一次有益的尝试:
var angular = require('angular');
var App = angular.module("App",[
require('angular-ui-router'),
require('./modules/myModule.js')
]);
myModule.js的内容如下:
var angular = require('angular');
/**
* 这里是***模块
* @type {[type]}
*/
var myModule = angular.module('myModule', []);
myModule.controller('myModuleCtrl',function($scope,$http,$state,$stateParams) {
//这里是controller的内容
});
这样呢,又会报错了。为什么呢?因为webpack导入的模块要符合CMD或者AMD的规范,而这个module显然是不符合的。关于规范:webpack教程与规范
那么搞懂了这个规范的意思,那也就是说,我们这个myModule应该这样写:
var angular = require('angular');
/**
* 这里是***模块
* @type {[type]}
*/
var myModule = angular.module('myModule', []);
myModule.controller('myModuleCtrl',function($scope,$http,$state,$stateParams) {
//这里是controller的内容
});
module.exports = myModule;
试了一下,还是不行啊报这个错:“module-is-not-a-function”,又去stackOverflow上查了一下:如何解决module is not a function 1 以及:如何解决module is not a function 2
原来是导出的时候加上.name,像这样:
module.exports = myModule.name;
基本上可以跑起来了。
这里还有一个坑,已经填上了:unknow provider使用ngAnnotate来解决:ngAnnotate的git地址
好的,到此为止,我们已经能让angular在webpack的环境下运行起来了。
gulp+webpack+angular1的一点小经验(第二部分webpack包起来的angular1)的更多相关文章
- gulp+webpack+angular1的一点小经验(第三部分使用一些angular1的插件ui-bootstrap与highcharts)
第一个要介绍的是我们的麻烦制造器:angular-ui-bootstrap ui-bootstrap可以有很多通用的插件给大家用,比如弹窗啊(modal),翻页控件啊(pagination),为什么说 ...
- gulp+webpack+angular1的一点小经验(第一部分gulp与webpack的整合)
时间匆匆如流水继上周熟悉了gulp的初步安装与环境配置以后,我的项目又进入了新的阶段! 这篇文章将把我这一周遇到的一些问题,以及解决的方式做一个小小的总结,不一定记的完整,但都是个人的一点经验,分享给 ...
- 模仿下拉框datalist的jquery插件的一点小经验
原本项目里是用h5的新属性data-list,但是这个下拉框的数据太多,而data-list似乎没有设置高度的地方,所以写了个小插件,期间也发现了一些bug,目前这个版本算是可以一用的版本,故写一下这 ...
- Web应用程序并发问题处理的一点小经验
在web应用中,一个账户,会有N多个涉及到数字的字段.比如一个账户的金额,积分等.这些字段就涉及到增减的情况.如果是在测试环境下,靠程序员或者测试手动点击.一般是发现不了问题. 一旦上到正式环境下.有 ...
- 【Django】有关多用户管理的一点小经验分享
前言 最近,笔者因为需要开发一个系统作为毕设的展示,因此就产生了有关多用户管理的问题.在这里我把自己的需求重新阐明一下:能够通过Django自带的用户管理框架,实现多用户的管理,例如登录.登出.ses ...
- Global一点小经验
Global: Global.asax 文件,有时候叫做 ASP.NET 应用程序文件,提供了一种在一个中心位置响应应用程序级或模块级事件的方法,他位于应用程序根目录下. 这个 Global.asax ...
- KInect AR沙盒制作的一点小经验
最近在微博上看到这样一条 微博 >点这看< 看起来非常有意思,就去Google了一下如何制作. 没想到这是一个开源项目,而且还告诉你如何安装 OK,接下来就说说我的制作过程. 首先,先放 ...
- 关于前端js拼接字符串的一点小经验
1.今天在做项目的时候遇到一个问题,就是使用onclick="xxx()" 点击事件的时候,参数如果为全数字就会出现点击无反应的问题.但是当参数为字符串或者动态内容的时候就会出现 ...
- 关于win8开发的一点小总结
我今天做画面的时候,发现了一点小问题. 我在xmal文件里面加了一个CheckBox控件,设置IsChecked属性为True,并添加了Checked事件.Checked事件里面有对另外一个TextB ...
随机推荐
- 2019.11.11&12题解
Day1 考的不是很好,T1T2没区分度,T3想的太少,考试后期几乎都是在摸鱼,bitset乱搞也不敢打,只拿到了35分,跟前面的差距很大 A. 最大或 标签: 二进制+贪心 题解: 首先x,y中一定 ...
- vue实现tab选项卡切换效果
tab选项卡切换效果: 通过点击事件传入参数,然后通过v-show来进行切换显示 <template> <div class="box"> <div ...
- Project Euler 58: Spiral primes
从一开始按以下方式逆时针旋转,可以形成一个边长为七的正方形螺旋: 一个有趣的现象是右下对角线上都有一个奇完全平方数,但是更有趣的是两条对角线上的十三个数中有八个数是素数(已经标红),也就是说素数占比为 ...
- Scrapy进阶知识点总结(六)——中间件详解
概述 查看scrapy官网的框架图,可以看出中间件处于几大主要组件之间,类似于生产流水线上的加工过程,将原料按照不同需求与功能加工成成品 其中4,5处于下载器与引擎之间的就是下载中间件,而spider ...
- vue之注册自定义的全局js方法
前端开发的时候,总会需要写一些js方法,在vue框架中为了方便使用,可以考虑注册一个全局的js方法,下面是注册步骤: 1.0 可以在assets文件中的js文件下面新建一个js文件,如:yun.js- ...
- 创建基于OData的Web API - Knowledge Builder API, Part IV: Write Controller
基于上一篇<创建基于OData的Web API - Knowledge Builder API, Part III:Write Model and Controller>,新创建的ODat ...
- jwt 实践应用以及特殊案例思考
JSON Web Token 是 rfc7519 出的一份标准,使用 JSON 来传递数据,用于判定用户是否登录状态. jwt 之前,使用 session 来做用户认证. 以下代码均使用 javasc ...
- C语言作业|08
问题 答案 这个作业的属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/9977 我 ...
- ef+Npoi导出百万行excel之踩坑记
最近在做一个需求是导出较大的excel,本文是记录我在做需求过程中遇到的几个问题和解题方法,给大家分享一下,一来可以帮助同样遇到问题的朋友,二呢,各位大神也许有更好的方法可以指点小弟一 ...
- selenium滑块验证
使用selenium模拟登录解决滑块验证问题 本次主要是使用selenium模拟登录网页端的TX新闻,本来最开始是模拟请求的,但是某一天突然发现,部分账号需要经过滑块验证才能正常登录,如果还是模拟 ...