本文轉載自:http://www.javashuo.com/article/p-rrfraijx-ho.htmlhtml
跟着Webpack傻瓜式指南(一)這個教程在安裝webpack和webpack-dev-server的時候遇到不少問題,查了不少終於一一找到解決辦法。
主要參考了這三篇博文:
moudule.js:338 throw err; Error: Cannot find module 'webpack/lib/node/NodeTemplatePlugin'
建立Webpack簡單項目碰見的那些事兒
webpack-dev-server 使用方法,看完還不會的來找我~
看到網上不少人也遇到一樣這些問題,特寫這篇博文,簡要總結安裝過程並穿插問題解決辦法,但願能給你們帶來一些幫助。node
npm install -g webpack
a. 新建一個package.json的文件在項目根目錄下webpack
npm init
b. 添加webpack.config.js配置文件web
c. 添加app文件夾,內含2個js文件
sub.jsexpress
//咱們這裏使用CommonJS的風格 function generateText() { var element = document.createElement('h2'); element.innerHTML = "Hello h2 world"; return element; } module.exports = generateText;
index.jsnpm
var sub = require('./sub'); var app = document.createElement('div'); app.innerHTML = '<h1>Hello World</h1>'; app.appendChild(sub()); document.body.appendChild(app);
a. 安裝html-webpack-plugin,快速生成HTMLjson
npm install html-webpack-plugin --save-dev
可在項目根目錄下安裝(不加-g,在項目根目錄出現node_modules文件夾,內含html-web-pack-plugin及其依賴包),也可全局安裝(加-g 必須sudo)vim
b. 寫webpack.config.js配置文件中的內容瀏覽器
var path = require('path'); var HtmlwebpackPlugin = require('html-webpack-plugin'); //定義了一些文件夾的路徑 var ROOT_PATH = path.resolve(__dirname); var APP_PATH = path.resolve(ROOT_PATH, 'app'); var BUILD_PATH = path.resolve(ROOT_PATH, 'build'); module.exports = { //項目的文件夾 能夠直接用文件夾名稱 默認會找index.js 也能夠肯定是哪一個文件名字 entry: APP_PATH, //輸出的文件名 合併之後的js會命名爲bundle.js output: { path: BUILD_PATH, filename: 'bundle.js'//將app文件夾中的兩個js文件合併成build目錄下的bundle.js文件 }, //添加咱們的插件 會自動生成一個html文件 plugins: [ new HtmlwebpackPlugin({ title: 'Hello World app' })//在build目錄下自動生成index.html,指定其title ], };
webpack
a. Error: Cannot find module 'webpack/../../.....'bash
解決1:在本項目中安裝webpack:
npm install webpack
解決2:修改環境變量
touch ~/.bash_profile
vim ~/.bash_profile
修改打開的.bash_profile文件:
export NODE_PATH="/usr/local/lib/node_modules"
使修改生效
source ~/.bash_profile
b. 若命令爲webpack --watch
,動態監聽文件的改變並實時打包,輸出新bundle.js文件;但不能作到hot replace,即每次webpack編譯以後,還需手動刷新瀏覽器
webpack-dev-server
,無需--inline
webpack-dev-server --inline
b. 安裝webpack-dev-servernpm install webpack-dev-server --save-dev
可在項目根目錄下安裝(不加-g,在項目根目錄出現node_modules文件夾,內含webpack-dev-server及其依賴包),也可全局安裝(加-g 必須sudo)
c. 在webpack.config.js中添加配置
var webpack=require('webpack'); module.exports = { …… devServer: { historyApiFallback: true, inline: true,//注意:不寫hot: true,不然瀏覽器沒法自動更新;也不要寫colors:true,progress:true等,webpack2.x已不支持這些 }, plugins:[ …… new webpack.HotModuleReplacementPlugin() ] …… };
d. 在package.json裏配置運行的命令(npm支持自定義一些命令)
"scripts": { "start": "webpack-dev-server --inline"//注意:不寫--hot,不然瀏覽器沒法自動更新 },
npm start
npm install webpack