저는 React를 처음 접했습니다. Facebook's Installation (Create a New App)을 따랐습니다. React가 webpack-dev-server를 실행해야하는 이유는 무엇입니까?
그래서 내가 응용 프로그램을 실행해야 할 때마다, 그것은 서버를 시작해야합니다. Chrome에서 빌드 버전을 열려고하면 (HTML을 직접 여는 경우) 아무 것도 표시되지 않습니다. 은 그 때 나는 codecademy 자습서를 사용하여 처음부터 환경을 자신 반응 설정에 노력했다. 여기에서 프로젝트를 빌드 한 후 크롬에서 HTML을 직접 열 수 있으며 내용이 표시됩니다.내 질문은 :
왜 웹 페이지는 첫번째 방법에 표시되지 않지만 둘째 방법은 서버를 시작하지 않고 실행?
편집 : 두번째 방법
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'입니다. 그래서 제 2의 메소드에서'webpack'을 호출하여 로더를 호출합니다. 서버를 시작하려면'start'를 호출하지 마십시오. 나는 package.json으로 나의 질문을 편집했다. – unknownymouse
내 말은'webpack'에 실제로 옮겨지고 (바벨 사용),'build/dist' 폴더를 uglify하고 빌드하는 것입니다. 따라서 인덱스 파일을 열면 js/css가 모두 필요한대로 내용이 표시됩니다. 'dev-server'를 사용하는 동안 acutal 파일이 생성되지 않습니다. 필요한 js/css는 주로 in-meory 파일 시스템의 서버입니다. – Panther