<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        使用Vue2.X和Webpack2.X開發SPA應用的環境構建方法

        來源:懂視網 責編:小采 時間:2020-11-27 20:16:37
        文檔

        使用Vue2.X和Webpack2.X開發SPA應用的環境構建方法

        使用Vue2.X和Webpack2.X開發SPA應用的環境構建方法:[TOC]1、開發環境準備1.1 安裝nodejs首先安裝Nodejs,直接去nodejs官網下載,默認會安裝Npm,所以這里可以不用單獨安裝。1.2 使用淘寶Npm鏡像由于國內網絡原因,如果直接使用Npm安裝依賴包會因為網絡和墻的原因導致不成功,好在淘寶給我提供了可以使用的鏡像
        推薦度:
        導讀使用Vue2.X和Webpack2.X開發SPA應用的環境構建方法:[TOC]1、開發環境準備1.1 安裝nodejs首先安裝Nodejs,直接去nodejs官網下載,默認會安裝Npm,所以這里可以不用單獨安裝。1.2 使用淘寶Npm鏡像由于國內網絡原因,如果直接使用Npm安裝依賴包會因為網絡和墻的原因導致不成功,好在淘寶給我提供了可以使用的鏡像

        2.2 安裝Webpack

        關于Webpack的概念和作用可以參考這篇博文:https://llp0574.github.io/2016/11/29/getting-started-with-webpack2/?utm_source=tuicool&utm_medium=referral和
        。英語好的童鞋可以直接參看官網:http://webpack.github.io/

        使用webpack的目的是讓代碼更模塊化,方便維護和管理,這和在Java中用maven來管理包很相似。

        2.2.1 安裝

        首先,在控制臺輸入命令:npm install webpack,這個命令的作用是讓npm安裝webpack到node_modules(該目錄會自動生成)下。

      1. 在產品環境中,以在命令后加上--save,比如:npm install webpack --save,這個意思是說把webpack安裝到node_modules下,并且更新package.json文件的dependencies。

      2. 在開發環境中,我們使用:npm install webpack --save-dev,將webpack安裝到Node_modules下,并且更新package.json的devDependencies。
        這里我們使用在開發環境中的命令。

      3. 更多的NPM命令可以參看官網:和

        2.2.2 配置

        1.首先,我們再工程目錄下新建src目錄,并在src下新建hello.js文件,文件內寫如下代碼:

        export default function () {const hello = document.createElement("div");hello.textContent = "Hello Webpack!"return hello;}

        這是按照ES6的語法來實現。

        關于ES6的更多內容可以參考這篇文檔:。

        export是定義對外暴露的接口,default是為export提供一個默認輸出,這樣可以在import的時候自定義變量名而不用在import的時候指定export中的變量名。所以這段代碼意思是:默認輸入一個匿名函數。

        2.然后,在hello.js同級下創建main.js,然后輸入如下內容:

        import Hello from "./hello";document.getElementById("app").appendChild(Hello());

        import是將剛才所寫的hello.js文件當做一個模塊導入進來,"Hello"變量就是為這個匿名函數定義變量名,from后面就是被引入的文件地址,如果是js文件默認不用寫,該路徑可以是相對路徑或者絕對路徑,然后用js去從dom獲取app節點,并添加子級元素。

        3.在工程根目錄新建public文件夾,并新建一個Index.html文件,如下:

        然后在Html文件中創建一個div,其id為app,并在body尾處引入script,如下圖:

        <!DOCTYPE html><html><head><meta charset="UTF-8"><title>Webpack Example</title><body><div id="app" ></div><script type="text/javascript" src="bundle.js?1.1.11"></script></body></html>

        4.在工程目錄下新建webpack.config.js文件,編輯webpack.config.js文件,編寫如下代碼:

        module.exports = {entry: __dirname + "/src/main.js?1.1.11",output: {path: __dirname + "/public",filename: "bundle.js?1.1.11"}}

        __dirname是nodejs中的全局變量,指向當前執行腳本的目錄。
        module.exports是webpack的對象,其中entry是指定入口文件,這里指定main.js為入口文件。output下的path是輸出目錄,filename是輸出文件名稱。通過path和filename組合就可以將我們再代碼中引入的模塊完整的輸出到制定的文件中。

        5.在控制臺執行webpack命令,就可以看到bundle.js文件已經輸出到Public目錄下了

        這個時候通過瀏覽器打開Index.html可以看到效果:

        3、進階Webpack

        上面我們已經可以用webpack來打包我們的模塊,不過這只是剛入門,后面我們會不斷的完善webpack.config.js這個文件。
        從剛才的例子中,我們需要自己手動的在html頁面里面引入bundle.js文件,那么有沒有自動幫我們引入文件的功能呢?回答肯定是有的,這里就介紹下Html-webpack-plugin插件。

        3.1 常用插件

        3.1.1 Html-webpack-plugin插件

        插件官方地址是:,這里只是簡單講解使用。

        1.要使用html插件,首先需要在項目中引入該模塊,在控制臺執行命令:

        npm install html-webpack-plugin --save-dev

        2.編輯webpack.config.js文件,在其中加入以下代碼:

        var HtmlWebpackPlugin = require("html-webpack-plugin");module.exports = {entry: __dirname + "/src/main.js?1.1.11",output: {path: __dirname + "/public",filename: "bundle.js?1.1.11"},plugins: [new HtmlWebpackPlugin()
         ]}

        可以看到,使用require引入html-webpack-plugin,然后在配置中的plugins數組中new一個插件對象。

        3.這個時候我們把public目錄刪除,再在控制臺執行webpack命令,會看到如下:

        注意看紅框部分,首先,title已經被修改了插件默認值;其次,id為app的div已經沒有了。最后,可看到在body末尾插件幫我們把bundle.js插入。

        template屬性
        看插件官網,插件有一個template屬性,可以指定模板文件,插件能按照模板幫我們插入js或者css引用。

        官網地址是:。

        看官網描述,默認會有一個ejs的loader會解析模板,至于ejs是什么?ejs是一個模板語言,在nodejs開發中經常會用到,這里可以把ejs完全當做一個html格式來用。
        所以,在src目錄下,我們新建一個index.temp.ejs文件,并把public下的index.html的內容拷貝到該文件中,并修改至如下:

        <!DOCTYPE html><html><head><meta charset="UTF-8"><title>Webpack Example</title><body><div id="app" class="custom"></div></body></html>

        可以看到,title已經被我們修改回webpack example了,并且也添加了id為app的div,還刪除了script,接著,刪除Public下的文件。然后我們再控制臺輸入webpack,等webpack打包編譯完成,這時public下生成了bundle.js和index.html文件,編輯index.html文件,可以看到如下信息:

        <!DOCTYPE html>
        <html>
        <head>
         <meta charset="UTF-8">
         <title>Webpack Example</title>
        <link href="styles.css?1.1.11" rel="stylesheet"></head>
        <body>
        <div id="app" class="custom"></div>
        <script type="text/javascript" src="bundle.js?1.1.11"></script></body>
        </html>

        在Body末尾,插件自動給我們把script加上了。

        3.1.2 Extract-text-webpack插件

        如果我們也想把css文件也自動插入,那么就會用到extract-text-webpack插件。

        其官網地址是:。

        官網的usage如下:

        const ExtractTextPlugin = require("extract-text-webpack-plugin");
        
        module.exports = {
         module: {
         rules: [
         {
         test: /\.css$/,
         use: ExtractTextPlugin.extract({
         fallback: "style-loader",
         use: "css-loader"
         })
         }
         ]
         },
         plugins: [
         new ExtractTextPlugin("styles.css?1.1.11"),
         ]
        }

        1.首先還是要先在控制臺輸入命令:

        npm install extract-text-webpack-plugin --save-dev。

        這里要注意:官網只提示安裝extract插件,其實在編譯的時候,還需要style-loader和css-loader,所以還要執行命令:

        npm install style-loader --save-dev
        npm install css-loader --save-dev

        2.然后在webpack.config.js文件上面,require一下這個插件
        3.按照官網的用法,編寫module節點,最后如下所示:

        var HtmlWebpackPlugin = require("html-webpack-plugin");
        var ExtractTextWebpackPlugin = require("extract-text-webpack-plugin");
        module.exports = {
         entry: __dirname + "/src/main.js?1.1.11",
         output: {
         path: __dirname + "/public",
         filename: "bundle.js?1.1.11"
         },
         module: {
         rules: [{
         test: /\.css$/,
         use: ExtractTextWebpackPlugin.extract({
         fallback: "style-loader",
         use: "css-loader"
         })
         }]
         },
         plugins: [
         new HtmlWebpackPlugin({
         template: "./src/index.temp.ejs"
         }),
         new ExtractTextWebpackPlugin("styles.css?1.1.11")
         ]
        }

        注意:

      4. test是正則表達式,不是字符串!!!,沒有引號

      5. 在webpack2中,module下的loaders改為rules,后者擁有更多的功能

      6. 4.接著,我們在src目錄下新建一個index.css文件,并編輯編寫如下樣式:

        .custom{
         font-size: 18px;
         color: bisque;
         border: 1px moccasin solid;
         padding: 5px;
        }

        5.然后,編輯index.temp.ejs文件,在div標簽加入class="custom",如下圖紅框處:

        <!DOCTYPE html>
        <html>
        <head>
         <meta charset="UTF-8">
         <title>Webpack Example</title>
        </head>
        <body>
        <div id="app" class="custom"></div>
        </body>
        </html>

        6.編輯main.js文件,在其頂部Import剛才新建的index.css文件,如下圖:

        import Hello from "./hello";
        import IndexStyle from "./index.css?1.1.11";
        
        document.getElementById("app").appendChild(Hello());

        7.最后,在控制臺輸入命令

        webpack

        編譯完成后,可以看到public目錄下生成了style.css文件,編輯index.html文件,可以看到在Head中引入了Style.css文件,如下圖:

        <!DOCTYPE html>
        <html>
        <head>
         <meta charset="UTF-8">
         <title>Webpack Example</title>
         <link href="styles.css?1.1.11" rel="stylesheet"></head>
        <body>
        <div id="app" class="custom"></div>
        <script type="text/javascript" src="bundle.js?1.1.11"></script></body>
        </html>

        3.2 開發服務器 - Webpack-dev-server

        在開發中,我們會不斷的調試頁面和參數,如果每次都是執行webpack命令未免太累了,所以這里介紹一個開發服務器webpack-dev-server,它提供一個易于部署的服務器環境,并且具有實時重載的功能。

        更多的文檔可以參考:。

        要使用這個功能,首先還先執行npm的安裝命令

        npm install webpack-dev-server --save-dev,

        執行完成后,編輯package.json文件,添加"start"代碼如下:

        "scripts": {
         "test": "echo \"Error: no test specified\" && exit 1",
         "start":"webpack-dev-server --progress"}

        "--progress"參數可以查看當前執行進度,在控制臺輸入"npm start"控制臺會打印日志信息,最后出現編譯成功,代表服務啟動完成,這時打開http://localhost:8080,可以看到index.html的內容,如下圖:

        這個時候,編輯hello.js,添加一些字符串如下:

        export default function () {
         const hello = document.createElement("div");
         hello.textContent = "Hello Webpack!This is my example!"
         return hello;
        }

        保存后,打開瀏覽器不用刷新,就可以看到我們新添加的"This is my example"。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        使用Vue2.X和Webpack2.X開發SPA應用的環境構建方法

        使用Vue2.X和Webpack2.X開發SPA應用的環境構建方法:[TOC]1、開發環境準備1.1 安裝nodejs首先安裝Nodejs,直接去nodejs官網下載,默認會安裝Npm,所以這里可以不用單獨安裝。1.2 使用淘寶Npm鏡像由于國內網絡原因,如果直接使用Npm安裝依賴包會因為網絡和墻的原因導致不成功,好在淘寶給我提供了可以使用的鏡像
        推薦度:
        標簽: VUE 使用的 應用的
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲自偷自偷偷色无码中文| 香蕉视频在线观看免费国产婷婷 | 亚洲成AV人片在| h片在线观看免费| 亚洲深深色噜噜狠狠爱网站| 色网站在线免费观看| 亚洲精品综合久久| fc2免费人成为视频| 亚洲乳大丰满中文字幕| 国产精品免费久久久久电影网| 日韩一卡2卡3卡4卡新区亚洲 | 一级毛片不卡片免费观看| 婷婷亚洲久悠悠色悠在线播放| 免费在线中文日本| 亚洲精品在线不卡| 好男人www免费高清视频在线| 亚洲乱码av中文一区二区| 亚洲AV伊人久久青青草原| 久久一区二区免费播放| 亚洲视频2020| 成人毛片免费视频| 亚州**色毛片免费观看| 亚洲av之男人的天堂网站| 亚洲w码欧洲s码免费| 亚洲国产欧美一区二区三区| 亚洲AV蜜桃永久无码精品| 大地资源中文在线观看免费版| 亚洲一级毛片在线观| 国产一级淫片免费播放| 国产真人无码作爱免费视频| 亚洲成人免费网站| 免费看又爽又黄禁片视频1000 | 91热成人精品国产免费| 亚洲AV无码专区亚洲AV桃| 国产精品亚洲视频| **aaaaa毛片免费| 无码天堂va亚洲va在线va| 久久精品国产亚洲AV网站| 成人一a毛片免费视频| 久久久久女教师免费一区| 2020年亚洲天天爽天天噜|