安装Node.js
官网下载安装https://nodejs.org/en/
安装cnpm /配置淘宝的镜像服务器
官网http://npm.taobao.org/
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
//or # 建议不要用cnpm 安装有各种诡异的bug 可以通过如下操作解决npm速度慢的问题
只改npm registry 不安装cnpm也可以利用淘宝的镜像服务器,使用cnpm只是其中的方式之一,如果对多安装出来的cnpm感觉多余,仍然可以继续使用npm指令。
设置npm的registry几种方法
临时使用
npm --registry https://registry.npm.taobao.org install express
持久使用
npm config set registry https://registry.npm.taobao.org
配置后可通过下面方式来验证是否成功
npm config get registry 或 npm info express
安装webpack(js应用程序的静态模块打包器module bundler)
输入 npm install webpack -g 进行安装,如何报错则去掉-g。
安装vue-cli(用来生成vue模板的工具)
npm install -g @vue/cli
新建一个Vue项目测试一下
vue-cli初始化一个vue项目
参考URL: https://www.cnblogs.com/guolintao/p/7797601.html
vue-cli 是vue.js的脚手架,用于自动生成vue.js模板工程的。
npm使用淘宝镜像
初始化webpack vue
vue init webpack hello:基于webpack来构建一个名称为hello的vue项目(项目构建一定要联网!联网!联网!)
通过vue-cli完成配置以后,下一步需要安装vue所需要的依赖包,项目需要安装的依赖包在vue-cli工具自动生成的package.json文件中有说明:
dependencies:项目中实际需要使用到的依赖包
devDependencies:项目开发过程中需要使用的一些工具包
在vscode中使用Git
URL:
vs code 推送新项目到码云
参考URL: https://blog.csdn.net/lyqhn2012/article/details/79231161
在VSCode上新建的VUE项目第一次提交到码云
参考URL: https://blog.csdn.net/qq_33643072/article/details/80320863
git remote add origin https://gitee.com/shepf/myVue.git
git push -u origin master
cd d:/wamp/www/mall360/wap //首先指定到你的项目目录下
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://git.oschina.net/name/package.git //用你仓库的url
git push -u origin master //提交到你的仓库C
要想在VS Code里面使用Git需要在编辑器内配置git.path
配置步骤:在编辑器的文件->首选项->设置->搜索git.path->点击编辑->找到你的电脑git的安装目录,找到里面的bin文件夹,里面的git.exe文件把该文件的完整路径复制下来
“git.path”: “C:\Program Files\Git\bin\git.exe”,
解决办法
npm的镜像替换成淘宝
1.看一下npm仓库地址:
npm get registry
得到仓库地址:>https://registry.npmjs.org/
2.替换地址
npm config set registry http://registry.npm.taobao.org/
备注:想要设置回原来的仓库地址就是将上面的命令地址改回去就行
npm config set registry https://registry.npmjs.org/
我们在使用 npm install 安装模块的模块的时候 ,一般会使用下面这几种命令形式:
npm install moduleName # 安装模块到项目目录下
npm install -g moduleName # -g 的意思是将模块安装到全局,具体安装到磁盘哪个位置,要看 npm config prefix 的位置。
npm install -save moduleName # -save 的意思是将模块安装到项目目录下,并在package文件的dependencies节点写入依赖。
npm install -save-dev moduleName # -save-dev 的意思是将模块安装到项目目录下,并在package文件的devDependencies节点写入依赖。
总结
devDependencies 节点下的模块是我们在开发时需要用的,比如项目中使用的 gulp ,压缩css、js的模块。这些模块在我们的项目部署后是不需要的,所以我们可以使用 -save-dev 的形式安装。像 express 这些模块是项目运行必备的,应该安装在 dependencies 节点下,所以我们应该使用 -save 的形式安装。
[Vue CLI 3] 源码系列之init
参考URL: https://www.jianshu.com/p/4b5f7bb725be
用惯老版本 Vue CLI 的同学一般多会选择使用如下命令来创建模板项目:
vue init webpack demo
但是在新版中,推荐使用 vue create
如下所示, vue create 是Vue CLI 3 的命令
D:\vue-test>vue create my-app
vue create is a Vue CLI 3 only command and you are using Vue CLI 2.9.6.
You may want to run the following to upgrade to Vue CLI 3:
npm uninstall -g vue-cli
npm install -g @vue/cli
D:\vue-test>
vue-cli3.x 新特性及踩坑记
参考URL: https://segmentfault.com/a/1190000016423943?utm_source=tag-newest
Vue CLI 3搭建vue+vuex最全分析(推荐)
参考URL: https://www.jb51.net/article/148100.htm
vue cli 的包名称由 vue-cli 改成了 @vue/cli。 如果你已经全局安装了旧版本的 vue-cli (1.x 或 2.x),你需要先通过 npm uninstall vue-cli -g 或 yarn global remove vue-cli 卸载它。
然后安装新的vue-cli
npm install -g @vue/cli
你也可以通过 vue ui 命令以图形化界面创建和管理项目:
上述命令会打开一个浏览器窗口,并以图形化界面将你引导至项目创建的流程。
如果没有配置保存过,则只有以下两个选项:
② default(babel,eslint):
默认设置(直接enter)非常适合快速创建一个新项目的原型,没有带任何辅助功能的 npm包
③ Manually select features:
手动配置(按方向键 ↓)是我们所需要的面向生产的项目,提供可选功能的 npm 包
const path = require('path');
module.exports = {
// 基本路径
baseUrl: './',
// 输出文件目录
outputDir: 'dist',
// eslint-loader 是否在保存的时候检查
lintOnSave: true,
// webpack配置
// see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
chainWebpack: () => {},
configureWebpack: (config) => {
if (process.env.NODE_ENV === 'production') {
// 为生产环境修改配置...
config.mode = 'production';
} else {
// 为开发环境修改配置...
config.mode = 'development';
}
Object.assign(config, {
// 开发生产共同配置
resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
'@c': path.resolve(__dirname, './src/components')
}
}
});
},
// 生产环境是否生成 sourceMap 文件
productionSourceMap: true,
// css相关配置
css: {
// 是否使用css分离插件 ExtractTextPlugin
extract: true,
// 开启 CSS source maps?
sourceMap: false,
// css预设器配置项
loaderOptions: {},
// 启用 CSS modules for all css / pre-processor files.
modules: false
},
// use thread-loader for babel & TS in production build
// enabled by default if the machine has more than 1 cores
parallel: require('os').cpus().length > 1,
// PWA 插件相关配置
// see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
pwa: {},
// webpack-dev-server 相关配置
devServer: {
open: process.platform === 'darwin',
host: '0.0.0.0',
port: 8080,
https: false,
hotOnly: false,
// proxy: {
// // 设置代理
// // proxy all requests starting with /api to jsonplaceholder
// 'http://localhost:8080/': {
// target: 'http://baidu.com:8080', //真实请求的目标地址
// changeOrigin: true,
// pathRewrite: {
// '^http://localhost:8080/': ''
// }
// }
// },
before: (app) => {}
},
// 第三方插件配置
pluginOptions: {
// ...
}
};
经webpack 处理:在 JavaScript 被导入或在 template/CSS 中通过“相对路径”被引用的资源会被编译并压缩
不经webpack 处理:放置在 public 目录下或通过绝对路径被引用的资源将会“直接被拷贝”一份,不做任何编译压缩处理
配置Babel 。Vue CLI 使用了 Babel 7 中的新配置格式 babel.config.js。和 .babelrc 或 package.json 中的 babel 字段不同,这个配置文件不会使用基于文件位置的方案,而是会一致地运用到项目根目录以下的所有文件,包括 node_modules 内部的依赖。官方推荐在 Vue CLI 项目中始终使用 babel.config.js 取代其它格式。
eslint是语法检查工具,但限制太过于严格,大部分开发人员无法适应,所以产生这个需求
如果不符合规范就会报错,有时候我们不想按照他的规范去写。这时我们需要关闭。这里有两种方法。
1.在搭建vue脚手架时提示是否启用eslint检测的。 Use ESLint to lint your code? 写 no;
2.如果项目已经生成,我们可以这样。
我们只要修改build\webpack.base.conf.js这个文件就好
eslint可辅助规范代码风格,有效控制代码质量,并且在多人合作的情况下,也可以使代码看起来更加的整洁。所以在开发过程中,还是建议保留eslint的校验的,养成一个好的编码习惯。
参考URL: https://www.itcodemonkey.com/article/8422.html
e2e 自动化测试
如何确定用户可以顺利走完流程呢? 一个流程可以很长
打开网页
浏览商品
加入购物车
下单确认
付款
单纯依靠人力来测试完整功能非常耗时耗力, 这时候自动化测试就体现价值了
自动化测试是把人的测试行为转化为机器执行的程序, 可以提高效率, 解放生产力, 节省人力成本和时间成本, 降低人类易出错的风险
现代比较流行的 e2e 测试框架有
Nightwatch
TestCafe
Protractor
WebdriverIO
Cypress
写一个最迷你的端到端自动化测试
首先 Nightwatch 需要一个配置文件 nightwatch.conf.js
module.exports = {
"webdriver": {
"server_path": "/usr/bin/safaridriver", // 浏览器 driver 的 bin 执行路径
"start_process": true, // 需要启动 driver
"port": 9515 // driver 启动的端口, 一般是 9515 或 4444
},
"test_settings": {
"default": {
"desiredCapabilities": {
"browserName": "safari" // 浏览器的名字叫 safari
}
}
}
}
此处之所以使用 safaridriver 是因为 mac 系统已经内置了 safaridriver, 零安装成本
然后来写一个简单易懂的测试脚本 e2e.test.js
module.exports = {
'Basic e2e Test' (browser) {
browser
.url('http://so.com') // 打开 so.com 网页
.waitForElementVisible('body') // 确认能看到 body 元素
.setValue('#input', 'Nightwatch') // 在搜索框输入 Nightwatch
.click('#search-button') // 点击搜索
.pause(1000) // 等待1秒钟
.assert.containsText('#container', 'Nightwatch') // 查询结果包含 Nightwatch
.end()
}
}
执行一下看测试结果
$ nightwatch basic-e2e.test.js
[Basic e2e Test] Test Suite
===========================
Running: Basic e2e Test
✔ Element was visible after 17 milliseconds.
✔ Testing if element <#container> contains text: "Nightwatch".
OK. 2 assertions passed. (3.419s)
总结: e2e测试,就是UI测试,模拟用户一套流程交互点击测试。
npm install --save nprogress nprogress/nprogress.css时,报错’git’ 不是内部或外部命令,也不是可运行的程序
配置git环境变量,测试还是不行。最后去掉了nprogress/nprogress.css,只执行如下命令
npm install --save nprogress
错误表示找不到node-sass模块。
因为cnpm安装导致的,换成npm安装就好
或者cnpm install node-sass@latest
解决方法:
输入命令:cnpm install node-sass@latest