Vue轮子笔记


1.创建仓库
2.组件
3.打包工具
4.报错总结
5.git 新建分支


创建仓库

  • 本地
cd ~/Desktop
mkdir gulu-demo
cd gulu-demo
touch README.md
vim README.md

轱辘 - 一个 Vue UI 组件
作者: 我

git init
git add .
git commit -m "init"
git remote add origin git@github.com:xingkongs/xingkongs-test-1.git
  • github

仓库点击 Create new file
新建的文件名称处填写 LICENSE
右侧选择 license 模板
选择 最宽松的 MIT
点绿色按钮 创建 license
连续点绿色按钮 merge license 到仓库

  • 回到本地
npm init

//本地与远程代码同步
git pull
ctrl + z //退出
git add commit push...

//添加 .gitignore
node-modules/
.idea/

//push的时候发现还有 .idea
git rm -r --cached .
git add .
git commit -m 'update .gitignore'

push 成功 

yarn add vue
yarn add parcel-bundler -D
  • CSS
:root 表示根组件 其实就是html 如果发现兼容性问题 你改成 html就行了 ie8部分支持

组件

  • 子组件安装
    如果一个包是给用户使用的 就不需要 -D
    如果是给开发者使用的 就使用 -D
    -D developer 开发者的意思
  • 子组件
    单文件组件 就需要三个东西
    templatescriptstyle
    子组件不能使用 data-开头的属性
    vue 有语法糖
vue.component("",{xxx})

只需要 一个对象{xxx}
你把对象 export一下

export default{xxx}

style 想用scss 就

<style lang="scss">
    ...
</style>

scss 不需要重复 一个选择器
放到第一个{}里
{} 中用& 表示当前的选择器

.wrapper{
  ...
  &>first-of-type{
      ...
  }
}
  • 入口文件
    需要 import 引入进来 Vue 和Button
    申明下 Vue.component('g-button',Button)

打包工具

  • parcel
./node_modules/.bin/parcel --no-cache
./node_modules/.bin/parcel
想短点? 
npx parcel --no-cache

//为了不加参数 删掉cache 
rm -rf .cache
  • 使用git-open 打开远程仓库
npm i git-open
git open

报错总结

  • git push 报错
git push -u origin master
///
sign_and_send_pubkey: signing failed: agent refused operation
Permission denied (publickey).

github 添加第二个 秘钥

ssh-keygen -t rsa -b 4096 -C "新的邮箱"
三个回车
把 xxx.pub 更新到 github
还是报错

执行

eval "$(ssh-agent -s)"
ssh-add

成功上传

  • 运行 npx parcel报错
    npx parcel -p 35385
  gulu-demo git:(master) ✗ npx parcel -p 35385
Server running at http://localhost:35385 
✨  Built in 746ms.
events.js:183
      throw er; // Unhandled 'error' event
      ^

Error: watch xx/node_modules/
caniuse-lite/data/regions/RU.js ENOSPC
    at _errnoException (util.js:992:11)
    at FSWatcher.start (fs.js:1382:19)
    at Object.fs.watch (fs.js:1408:11)
    at createFsWatchInstance (xx/node_modules/chokidar/lib/nodefs-handler.js:37:15)
    at setFsWatchListener (xx/node_modules/chokidar/lib/nodefs-handler.js:80:15)
    at FSWatcher.NodeFsHandler._watchWithNodeFs (xx/node_modules/chokidar/lib/
nodefs-handler.js:232:14)
    at FSWatcher.NodeFsHandler._handleFile (xx/node_modules/chokidar/lib/
nodefs-handler.js:259:21)
    at FSWatcher.<anonymous> (xx/node_modules/chokidar
/lib/nodefs-handler.js:480:21)
    at FSReqWrap.oncomplete (fs.js:153:5)

或者

Error: ENOSPC: no space left on device, watch 
'xx/node_modules/type-check/package.json'
    at FSWatcher.start (fs.js:1409:26)
    at Object.fs.watch (fs.js:1446:11)
    at createFsWatchInstance (xx/node_modules/chokidar/lib/nodefs-handler.js:37:15)
    at setFsWatchListener (xx/node_modules/chokidar/lib/
nodefs-handler.js:80:15)
    at FSWatcher.NodeFsHandler._watchWithNodeFs 
(xx/node_modules/chokidar/lib/nodefs-handler.js:232:14)
    at FSWatcher.NodeFsHandler._handleFile (xx/node_modules/chokidar/lib/
nodefs-handler.js:259:21)
    at FSWatcher.<anonymous> (xx/node_modules/chokidar/lib/
nodefs-handler.js:480:21)
    at FSReqWrap.oncomplete (fs.js:185:5)
Emitted 'error' event at:
    at FSWatcher._handleError (xx/node_modules/chokidar/index.js:260:10)
    at createFsWatchInstance (xx/node_modules/
chokidar/lib/nodefs-handler.js:39:5)
    at setFsWatchListener (xx/node_modules/chokidar/lib/nodefs-handler.js:80:15)
    [... lines matching original stack trace ...]
    at FSReqWrap.oncomplete (fs.js:185:5)

执行

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

这时再运行 npx parcel

  • 控制台报错
vue.runtime.esm.js:41 [Vue warn]: 
You are using the runtime-only build of Vue where the template compiler
 is not available.
 Either pre-compile the templates into render functions, 
or use the compiler-included build.

Vue 文档有相关介绍 需要修改 package.json

"alias": {
    "vue": "./node_modules/vue/dist/vue.common.js"
  }

重新运行parcel

还报错 ?
npx parcel --no-cache

成功!!!~~~

  • 控制台报错
Do not use built-in or reserved HTML elements as component id: input

这个报错 可能是你的组件 命名与 html 的命名有冲突
查看下你的组件name

  • parcel build svg 报错
$ npm run build

> specialTemplate@1.0.0 build E:\work\specialTemplate
> npx parcel build index.html  --no-cache --public-url ./

×  Error in parsing SVG: Unbound namespace prefix: "xlink"
Line: 0
Column: 52
Char: >
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! specialTemplate@1.0.0 build: 
`npx parcel build index.html  --no-cache --public-url ./`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the specialTemplate@1.0.0 build script.
npm ERR! This is probably not a problem with npm.
There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\xingkongs\AppData\Roaming\npm-cache\_logs\
2018-09-12T08_14_33_889Z-debug.log

可以在 svg 加属性 xmlns:xlink

<svg class="svgIcon" xmlns:xlink="http://www.w3.org/1999/xlink"  aria-hidden="true">
  <use xlink:href="#icon-shipin"></use>
</svg>
  • yarn 安装报错
yarn install
There are no scenarios; must have at least one.

这个因为 yarn的版本不够高 需要重新安装yarn
以 linux 为例

//添加 yarn源
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
//重新安装 yarn
sudo apt-get install yarn
  • 使用 vuepress 引入组件报错
Can't resolve 'sass-loader'

需要安装 相关 预处理器文档

//例如sass需要安装
yarn add -D sass-loader node-sass
  • 使用 vue-cli 代替 parcel 后 yarn test 报错
 yarn test
yarn run v1.13.0
cross-env BABEL_ENV=test karma start --single-run
15 03 2019 15:59:39.084:ERROR [karma-server]: 
Server start failed on port 9876: 
Error: No provider for "framework:sinon-chai"! 
(Resolving: framework:sinon-chai)

需要 安装 karma-sinon-chai

yarn add --dev karma-sinon-chai

git 新建分支

git branch new-branch
git push origin new-branch:new-branch
git checkout new-branch

引号问题

<g-col span="1"><g-col>
// span 传入的是字符串 "1"
//如何传 数字 1 呢

<g-col :span="1"><g-col>
//span= 后面的引号 是 html的 引号 里面的1 是数字1

//那怎么传字符串呢 下面的三种方法都可以
<g-col :span=" '1' "><g-col>
<g-col :span=" `1` "><g-col>
<g-col :span=' "1" '><g-col>
//外面的引号是html的 引号  里面的引号是 js的引号
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容