我对Webpack和React很陌生。我只是试图让一个简单的Webpack/Babel/React模板正常运行,所以我可以抓住它并开始在应用程序上工作,而不用担心每次都设置它。不过,我遇到了一个奇怪的问题。Webpack + React:Webpack从我的node_modules文件夹以正确的顺序在一个地方构建,并且在其他地方的顺序不正确
我用React使用Webpack,Node和Babel制作了Hello World。事情是,它只能在我制作的特定目录中工作。如果我复制/粘贴所有内容,并尝试运行我的NPM脚本,则在我的JSX文件中出现'未知模板'错误。经过一番调查,我确信问题在于,由于某种原因,当我在原始目录之外运行所有内容时,Webpack以不同的顺序构建事物。
这是输出从我得到的WebPack的作品:
[8] ./node_modules/react-dom/lib/ReactInstrumentation.js 601 bytes {0} [built]
[11] ./node_modules/react-dom/lib/ReactUpdates.js 9.53 kB {0} [built]
[14] ./node_modules/react/lib/ReactElement.js 11.2 kB {0} [built]
[16] ./node_modules/react/lib/React.js 5.08 kB {0} [built]
[49] ./node_modules/react/react.js 56 bytes {0} [built]
[82] multi ./main.js 28 bytes {0} [built]
[83] ./src/main.js 581 bytes {0} [built]
[99] ./node_modules/react-dom/index.js 59 bytes {0} [built]
这就是输出的时候它不工作,我得到。
[8] ./node_modules/react-dom/lib/ReactInstrumentation.js 601 bytes {0} [built]
[11] ./node_modules/react-dom/lib/ReactUpdates.js 9.53 kB {0} [built]
[14] ./node_modules/react/lib/ReactElement.js 11.2 kB {0} [built]
[16] ./node_modules/react/lib/React.js 5.08 kB {0} [built]
[81] multi ./main.js 28 bytes {0} [built]
[82] ./src/main.js 272 bytes {0} [built]
[83] ./node_modules/react/react.js 56 bytes {0} [built]
正如你可以看到,在构建不起作用,行[83] ./node_modules/react/react.js 56 bytes {0} [built]
来后的WebPack建立我main.js,而在工作的人,谈到之前。
是否有这种情况发生的原因,并解决这个问题的好方法?我很迷茫。这里是我的webpack.config.js文件:
const path = require('path');
module.exports = {
context: path.join(__dirname + '/src'),
entry: [
'./main.js'
],
output: {
path: path.join(__dirname + '/www'),
filename: 'bundle.js'
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: [
'babel-loader'
],
},
],
},
resolve: {
modules: [
path.join(__dirname + '/node_modules')
],
},
};
编辑:有人问我的package.json文件,所以在这里,它是:
{
"name": "simple_react_setup",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"compile": "webpack",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"babel-core": "^6.26.0",
"babel-loader": "^7.1.2",
"babel-preset-latest": "^6.24.1",
"babel-preset-react": "^6.24.1",
"express": "^4.15.4",
"react": "^15.6.1",
"react-dom": "^15.6.1",
"webpack": "^3.5.5",
"webpack-dev-middleware": "^1.12.0"
}
}
当我复制/粘贴的一切到一个新的目录我我简直就是复制整个目录,所以代码根本没有改变。我确定npm install已经运行。我得到的错误是我的JSX文件中有一个未知模板:
ERROR in ./src/Counter.js
Module build failed: SyntaxError: Unexpected token (16:12)
14 | render() {
15 | return (
> 16 | <button
谢谢!