1. 程式人生 > >webstorm+webpack創建項目

webstorm+webpack創建項目

get 配置 ace star fill cli ports replace plugin

http://blog.csdn.net/mafan121/article/details/71211922

1.使用webstrom創建一個空的項目

技術分享

2.在項目下創建文件夾和文件

a.創建css文件夾存放index.css文件,文件內容如下:

[css] view plain copy print?
  1. p{
  2. font-size: 24px;
  3. padding:0 100px;
  4. color:blue;
  5. }
  6. p:nth-of-type(2) {
  7. font-size: 30px;
  8. text-align: center;
  9. color:black;
  10. font-family:"幼圓";
  11. }
  12. p:nth-of-type(3) {
  13. color: red;
  14. font-weight:bold;
  15. text-align: right;
  16. }


b.創建index文件夾,存放index.html文件,文件內容如下:

[javascript] view plain copy print?
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>myFirstDemo</title>
  6. </head>
  7. <body>
  8. <div id="app"></div>
  9. <script src="bundle.js"></script>
  10. </body>
  11. </html>


c.創建data文件夾存放index.json文件,文件內容如下:

[javascript] view plain copy print?
  1. {
  2. "name":"hello webpack",
  3. "content":"this is my first demo",
  4. "start":"Ready Go!"
  5. }


d.創建jsproject文件夾存放createdom.js和entry.js文件。

entry.js

[javascript] view plain copy print?
  1. require(‘./../css/index.css‘);
  2. var createdom = require(‘./createdom.js‘);
  3. document.getElementById(‘app‘).appendChild(createdom());

createdom.js

[javascript] view plain copy print?
  1. var message=require(‘./../data/index.json‘);
  2. module.exports = function() {
  3. var greet=document.createElement(‘div‘);
  4. greet.innerHTML="<p>"+message.name+"</p>"+"<p>"+message.content+"</p>"+"<p>"+message.start+"</p>";
  5. return greet;
  6. };


技術分享

3.命令操作

在webstorm的Terminal窗口執行如下命令:

技術分享

a.生成依賴文件package.json(默認會在根目錄下生成)
cnpm init

b.依次安裝相關依賴(安裝後項目根目錄下會出現node_modules文件夾,下面包含下載的依賴)

(1)cnpm intsall webpack -g

(2)cnpm install --save-dev webpack

(3)cnpm install --save-dev css-loader

(4)cnpm install --save-dev style-loader

(5)cnpm install --save-dev json-loader

(6)cnpm install --save-dev webpack-dev-server

4.配置webpack.config.js文件

在項目根路徑下創建webpack.config.js文件,文件內容為:

[javascript] view plain copy print?
  1. var webpack = require(‘webpack‘);
  2. module.exports = {
  3. //2、進出口文件配置
  4. entry:__dirname+‘/jsproject/entry.js‘,//指定的入口文件,“__dirname”是node.js中的一個全局變量,它指向當前執行腳本所在的目錄
  5. output: {//輸出
  6. path: __dirname+‘/index‘,//輸出路徑
  7. filename: ‘bundle.js‘//輸出文件名
  8. },
  9. module: {//在配置文件裏添加加載器說明,指明每種文件需要什麽加載器處理
  10. loaders: [
  11. {//json加載器
  12. test: /\.json$/,
  13. loader: "json-loader"//註意-loader不能省略,網上說能省略,經測試編譯會報錯
  14. },
  15. {//5、編譯es6配置
  16. test:/\.js$/,
  17. exclude:/node_modules/,
  18. loader:‘babel-loader‘,//在webpack的module部分的loaders裏進行配置即可
  19. query:{
  20. presets:[‘es2015‘,‘react‘]
  21. }
  22. },
  23. {//3、CSS-loader
  24. test:/\.css$/,
  25. loader:‘style-loader!css-loader‘//添加對樣式表的處理
  26. }
  27. ]
  28. },
  29. //4、服務器依賴包配置
  30. devServer: {//註意:網上很多都有colors屬性,但是實際上的webpack2.x已經不支持該屬性了
  31. contentBase: "./index",//本地服務器所加載的頁面所在的目錄
  32. historyApiFallback: true,//不跳轉
  33. inline: true//實時刷新
  34. //hot:true,//不要書寫該屬性,否則瀏覽器無法自動更新
  35. //publicPath:"/asses/",//設置該屬性後,webpack-dev-server會相對於該路徑
  36. },
  37. plugins:[]//插件
  38. }


此時的文件目錄為:

技術分享

5.啟動服務

在Terminal中輸入:

webpack

執行完成後,輸入:

webpack-dev-server

然後在瀏覽器中輸入:http://localhost:8080/

此時可以看到效果了,而且更新代碼。瀏覽器也會實時刷新。

webstorm+webpack創建項目