我是新來的React,我跟着Facebook's Installation(創建一個新的應用程序)。爲什麼React需要webpack-dev-server運行?
所以每次我需要運行的應用程序時,它需要啓動服務器。當我嘗試在chrome中打開構建版本(直接打開HTML)時,什麼都不顯示。
然後我試圖安裝使用教程codecademy從頭開始作出反應的環境自己。在這裏,在我構建項目之後,我可以直接在Chrome中打開HTML並顯示內容。
我的問題是:
爲什麼網頁不會被顯示在第一個方法,但第2個方法,而無需啓動服務器運行?
編輯:
的package.json對於第二方法:
{
"name": "practice",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "webpack",
"start": "webpack-dev-server"
},
"author": "",
"license": "ISC",
"dependencies": {
"react": "^15.6.1",
"react-dom": "^15.6.1"
},
"devDependencies": {
"babel-core": "^6.26.0",
"babel-loader": "^7.1.2",
"babel-preset-react": "^6.24.1",
"html-webpack-plugin": "^2.30.1",
"webpack": "^3.6.0",
"webpack-dev-server": "^2.8.2"
}
}
webpack.config.js:
var HTMLWebpackPlugin = require('html-webpack-plugin');
var HTMLWebpackPluginConfig = new HTMLWebpackPlugin({
template: __dirname + '/app/index.html',
filename: 'index.html',
inject: 'body'
});
module.exports = {
entry: __dirname + '/app/index.js',
module: {
loaders: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader'
}
]
},
output: {
filename: 'transformed.js',
path: __dirname + '/build'
},
plugins: [HTMLWebpackPluginConfig]
};
簡單的答案..確定你爲什麼在你的codeacademy中運行'npm run build'和它做了什麼。你應該能夠弄清楚這一點。如果讀完後仍然有問題,請回復 – Panther
@Panther在我的package.json中,構建腳本是'webpack',啓動腳本是'webpack-dev-server'。所以,在我的第二種方法中,我只是調用'webpack'來調用加載器。我沒有調用'start'啓動服務器。我用package.json編輯了我的問題。 – unknownymouse
我的意思是'webpack'實際上是運行(使用babel),uglify並建立你的'build/dist'文件夾。因此,從它們打開索引文件將顯示所有必需的js/css存在的內容。在使用'dev-server'時,不會生成acutal文件。所需的js/css大多是來自文件系統的服務器。 – Panther