【发布时间】:2019-08-20 19:23:10
【问题描述】:
当我尝试仅使用 Nodejs 启动我的 Web 应用程序时,我没有任何问题,我的 Web 应用程序工作正常。
但是当我尝试在我的笔记本电脑上模拟生产中的启动时,即静态页面将由 webpack 服务器提供,而来自 API 的数据将由 Nodejs 提供。我遇到了这个错误:
/home/josecarlos/Workspace/nodejs/basketmetrics3/node_modules/convert-source-map/index.js:61
return SafeBuffer.Buffer.from(json, 'utf8').toString('base64');
^
TypeError: Cannot read property 'from' of undefined
at Converter.toBase64 (/home/josecarlos/Workspace/nodejs/basketmetrics3/node_modules/convert-source-map/index.js:61:28)
at Converter.toComment (/home/josecarlos/Workspace/nodejs/basketmetrics3/node_modules/convert-source-map/index.js:65:21)
at generateCode (/home/josecarlos/Workspace/nodejs/basketmetrics3/node_modules/@babel/core/lib/transformation/file/generate.js:78:76)
at runSync (/home/josecarlos/Workspace/nodejs/basketmetrics3/node_modules/@babel/core/lib/transformation/index.js:50:51)
at transformSync (/home/josecarlos/Workspace/nodejs/basketmetrics3/node_modules/@babel/core/lib/transform.js:43:38)
at Object.transform (/home/josecarlos/Workspace/nodejs/basketmetrics3/node_modules/@babel/core/lib/transform.js:22:38)
at compile (/home/josecarlos/Workspace/nodejs/basketmetrics3/node_modules/@babel/register/lib/node.js:73:20)
at compileHook (/home/josecarlos/Workspace/nodejs/basketmetrics3/node_modules/@babel/register/lib/node.js:102:12)
at Module._compile (/home/josecarlos/Workspace/nodejs/basketmetrics3/node_modules/pirates/lib/index.js:93:29)
at Module._extensions..js (internal/modules/cjs/loader.js:827:10)
要开始我的项目,我使用这个命令 npm run start
这些是我的配置文件:
package.json
{
"name": "basketmetrics3",
"version": "1.0.0",
"description": "Basketball advanced stats",
"main": "server.js",
"scripts": {
"dev-webpack": "webpack-dev-server --hot --mode development",
"clean": "rm -rf ./dist",
"dev": "npm run clean && npm run compile-dev && cross-env NODE_ENV=development nodemon --exec babel-node src/server/server.js --ignore ./src/client",
"compile-dev": "NODE_ENV=development webpack -d --config ./webpack.config.babel.js --progress",
"compile": "NODE_ENV=production webpack -p --config ./webpack.config.babel.js --progress",
"start": "npm run clean && npm run compile && cross-env NODE_ENV=production babel-node src/server/server.js --ignore ./src/client"
},
"license": "ISC",
"dependencies": {
"@babel/polyfill": "^7.4.4",
"@material-ui/core": "^3.9.3",
"@material-ui/icons": "^3.0.2",
"bootstrap": "^4.3.1",
"cors": "^2.8.5",
"create-react-app": "^3.0.1",
"cross-env": "^5.2.0",
"d3": "^5.9.7",
"dotenv": "^7.0.0",
"express": "^4.17.1",
"express-graphql": "^0.7.1",
"graphql": "^14.4.2",
"jquery": "^3.4.1",
"morgan": "^1.9.1",
"mysql2": "^1.6.5",
"popper.js": "^1.15.0",
"react": "^16.8.6",
"react-bootstrap": "^1.0.0-beta.10",
"react-bootstrap-table-next": "^3.1.7",
"react-bootstrap-table2-paginator": "^2.0.7",
"react-dom": "^16.8.6",
"react-multi-language": "^0.4.2",
"react-router-dom": "^5.0.1",
"react-simple-tooltip": "^2.6.1",
"sequelize": "^4.44.2",
"validator": "^10.11.0"
},
"devDependencies": {
"@babel/cli": "^7.5.5",
"@babel/core": "^7.5.5",
"@babel/node": "^7.5.5",
"@babel/preset-env": "^7.5.5",
"@babel/preset-react": "^7.0.0",
"babel-loader": "^8.0.6",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-register": "^6.26.0",
"css-loader": "^2.1.1",
"file-loader": "^3.0.1",
"html-webpack-plugin": "^3.2.0",
"mini-css-extract-plugin": "^0.5.0",
"nodemon": "^1.19.1",
"path": "^0.12.7",
"style-loader": "^0.23.1",
"url-loader": "^1.1.2",
"webpack": "^4.38.0",
"webpack-cli": "^3.3.6",
"webpack-dev-server": "^3.7.2"
}
}
.babelrc
{
"presets": [
["@babel/preset-env" , {"modules": "cjs"}],
"@babel/preset-react"
],
"plugins": [
"transform-class-properties"
],
"ignore": [
"./node_modules"
]
}
我一直在寻找有关我的问题的信息,我发现我必须将“ignore: [node_modules]”添加到我的 .babelrc 文件中。但是,在我的 .babelrc 文件中添加了这个条目之后,我的应用程序仍然无法工作:(
有没有其他方法可以用 node.js 忽略“node_modules”?如何忽略“node_modules”?如果这是我的错误的真正原因,当然。
我可以做些什么来解决我遇到的错误?
【问题讨论】:
标签: node.js babeljs package.json