以前剛學了一些Vue的皮毛因而寫了一個本地播放器https://github.com/liwenchi123000/Local-Music-Player,若是以爲ok的朋友能夠給個star。javascript
就是很簡單,因爲是第一次用Vue寫小demo,因此代碼寫的有點蠢很裸的那種,不像大神那樣一看代碼組織的就很美。css
但好就在因而和官網的文檔寫法差很少,爲何這麼說呢,看接下來的就知道了。html
有一次看到了別人寫的應用,點進去一看驚呆了vue
這咋還能這麼寫呢?這html不用引用script嗎?java
而後隨手在src裏找到了幾個其餘的文件react
這都是啥???webpack
可是20行到25行很熟悉,就是文檔裏的。可是第24行有是個啥?(這個至今沒明白,但願大佬能夠指點一二),可是這個main.js和index.html跟本就沒有關聯啊,第21行怎麼綁定到dom元素上的?git
而後又隨手找到了一個看起來應該很重要的文件App.vuegithub
這寫的感受很清晰很簡潔,和我一個好幾百行的js文件徹底不同有木有...web
因此就查了一下相關資料,才知道這是vue-cli的功勞,可是這個東西是真的勸退。。。。。。我踏馬看了一下午都沒搞懂這玩意雜用,因而果斷放棄,網上的各類文章視頻,以及各類文檔根本看的我頭疼,反正最後也沒寫出來啥玩意。反正那些教程各類複雜,網上找了個vue-cli的教程,webpack配置佔了70%。
而後今天中午弄明白了怎麼不使用vue-cli的狀況下使用單文件組件(就是那個.vue文件)寫點小東西。也就是簡單的webpack + vue
-------------------------------------------------------------------------------------------------------------
1.先準備一個空文件夾
2.初始化項目
npm init
3.對當前文件夾安裝webpack
// --save-dev開發環境 npm install --save-dev webpack
4.先看一下最終的目錄結構
紅色箭頭指向的是npm或webpack自動生成的,其餘的是我本身建立的
5.建立webpack.config.js
1 const path = require('path'); 2 3 module.exports = { 4 // 入口文件,咱們假設是單入口 5 entry: { 6 main: './src/index.js' 7 }, 8 // 出口文件 9 output: { 10 path: path.resolve(__dirname, './dist'), 11 filename: 'bundle.js' 12 }, 13 module: { 14 // 當你import奇怪的後綴的時候webpack是看不懂的,他只認識js,因此須要一些奇怪的loader(加載器) 15 // 並且這些加載器要安裝,詳情見底下 16 rules: [ 17 { test: /\.css$/, use: 'css-loader' }, 18 { test: /\.ts$/, use: 'ts-loader' }, 19 { test: /\.vue$/, use: 'vue-loader' }, 20 { test: /\.less$/, use: 'less-loader' }, 21 ] 22 }, 23 devServer: {}, 24 plugins: [], 25 } 26 27 /* 28 使用loader前請先在項目中安裝對應的loader 29 例如: 30 npm install --save-dev css-loader vue-loader less-loader vue-template-compiler 31 npm install --save-dev ts-loader 32 常見loader: 33 1.模板: 34 35 (1)html-loader:將HTML文件導出編譯爲字符串,可供js識別的其中一個模塊 36 37 (2)pug-loader : 加載pug模板 38 39 (3)jade-loader : 加載jade模板(是pug的前身,因爲商標問題更名爲pug) 40 41 (4)ejs-loader : 加載ejs模板 42 43 (5)handlebars-loader : 將Handlebars模板轉移爲HTML 44 2.樣式: 45 46 (1)css-loader : 解析css文件中代碼 47 48 (2)style-loader : 將css模塊做爲樣式導出到DOM中 49 50 (3)less-loader : 加載和轉義less文件 51 52 (4)sass-loader : 加載和轉義sass/scss文件 53 54 (5)postcss-loader : 使用postcss加載和轉義css/sss文件 55 3.腳本轉換編譯: 56 57 (1)script-loader : 在全局上下文中執行一次javascript文件,不須要解析 58 59 (2)babel-loader : 加載ES6+ 代碼後使用Babel轉義爲ES5後瀏覽器才能解析 60 61 (3)typescript-loader : 加載Typescript腳本文件 62 63 (4)coffee-loader : 加載Coffeescript腳本文件 64 4.JSON加載: 65 66 (1)json-loader : 加載json文件(默認包含) 67 68 (2)json5-loader : 加載和轉義JSON5文件 69 5.Files文件 70 71 (1)raw-loader : 加載文件原始內容(utf-8格式) 72 73 (2)url-loader : 多數用於加載圖片資源,超過文件大小顯示則返回data URL 74 75 (3)file-loader : 將文件發送到輸出的文件夾並返回URL(相對路徑) 76 77 (4)jshint-loader : 檢查代碼格式錯誤 78 6.加載框架: 79 80 (1)vue-loader : 加載和轉義vue組件,這個彷佛還須要安裝vue-template-compiler 81 82 (2)angualr2-template--loader : 加載和轉義angular組件 83 84 (3)react-hot-loader : 動態刷新和轉義react組件中修改的部分,基於webpack-dev-server插件需先安裝,而後在webpack.config.js中引用react-hot-loader 85 */
6.在./src/建立index.js
vue.js是vue的源文件,https://vuejs.org/js/vue.js
1 import Vue from './assert/vue.js'; 2 import Name from './componments/name.vue'; 3 4 var vm = new Vue({ 5 el: '#app', 6 data: { 7 msg: '你好' 8 }, 9 components: { 10 'myname': Name, 11 } 12 });
7.在./src/components下創一個name.vue
1 <template> 2 <div><h2>{{msg}}</h2></div> 3 </template> 4 5 <script> 6 export default { 7 data: function() { 8 return { 9 msg: 'Bob' 10 } 11 } 12 }; 13 </script> 14 15 16 <style> 17 h2 { 18 color: red; 19 } 20 </style>
8.在命令行裏輸入"webpack --watch"
這個watch能夠不用再輸命令
9.最終效果
10.但願對你有幫助