问题:
正在尝试npm run dev
启动服务器,但它给出以下错误,尽管对于其他团队成员来说完全相同的代码也可以正常工作。
错误:
Error: Cannot find module 'braintree'
Require stack:
- C:\Users\Zainulabideen\Documents\GitHub\wine\dist\routes\api\braintree\clientToken.js
- C:\Users\Zainulabideen\Documents\GitHub\wine\dist\app.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:982:15)
at Function.Module._load (internal/modules/cjs/loader.js:864:27)
at Module.require (internal/modules/cjs/loader.js:1044:19)
at require (internal/modules/cjs/helpers.js:77:18)
at Object.<anonymous> (C:\Users\Zainulabideen\Documents\GitHub\wine\dist\routes\api\braintree\clientToken.js:5:17)
at Module._compile (internal/modules/cjs/loader.js:1158:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
at Module.load (internal/modules/cjs/loader.js:1002:32)
at Function.Module._load (internal/modules/cjs/loader.js:901:14)
at Module.require (internal/modules/cjs/loader.js:1044:19) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'C:\\Users\\Zainulabideen\\Documents\\GitHub\\wine\\dist\\routes\\api\\braintree\\clientToken.js',
'C:\\Users\\Zainulabideen\\Documents\\GitHub\\wine\\dist\\app.js'
]
}
[nodemon] app crashed - waiting for file changes before starting...
相关代码:
app.js
....
const brainTreeToken = require("./routes/api/braintree/clientToken");
app.get("/client_token", function (req, res) {
brainTreeToken.braintreeClient(req, res);
});
....
clientToken.js
var braintree = require("braintree");
import { useDispatch } from "react-redux";
const braintreeClient = (req, res) => {
var gateway = braintree.connect({
environment: braintree.Environment.Sandbox,
merchantId: "XXXXXXXXXXX",
publicKey: "XXXXXXXXXXXX",
privateKey: "XXXXXXXXXXX",
});
gateway.clientToken.generate({}, function(err, response) {
var clientToken = response.clientToken;
res.send(clientToken);
});
};
module.exports = {
braintreeClient: braintreeClient,
};
Package.json
{
"name": "XYZ",
"version": "0.0.10",
"private": true,
"description": "React APP",
"license": "ISC",
"author": "Temp",
"main": "index.js",
"scripts": {
"start": "node dist/app.js",
"start:prod": "npm i --production && npm run build && npm run server",
"dev": "echo Running App Under Watcher Nodemon Hot Deploy && nodemon dist/app.js",
"test": "jest --bail",
"test:watch": "jest --watch",
"build": "sh ./scripts/build-app.sh",
"build:dev": "SET NODE_ENV=development && npm run build",
"build:prod": "SET NODE_ENV=production npm run build",
"server": "node dist/app.js",
"server:dev": "SET NODE_ENV=development npm run server",
"server:prod": "SET NODE_ENV=production npm run server",
"docker": "sh ./scripts/build-docker.sh",
"webpack": "rimraf ./build && webpack --config tools/webpack.config.js",
"lint": "eslint src/**/*.js",
"hotstart": "nohup node src/server.js > nohup.out 2> nohup.err < /dev/null & react-scripts start"
},
"eslintConfig": {
"extends": "react-app"
},
"dependencies": {
"awesome-notifications": "^3.0.3",
"babel-eslint": "^10.0.2",
"body-parser": "^1.19.0",
"bootstrap": "^4.3.1",
"console-stamp": "^0.2.9",
"cookie-parser": "~1.4.3",
"cors": "^2.8.5",
"debug": "~2.6.9",
"eslint": "^6.0.1",
"eslint-config-react-app": "^4.0.1",
"eslint-loader": "^2.2.1",
"eslint-plugin-flowtype": "^3.11.1",
"eslint-plugin-import": "^2.18.0",
"eslint-plugin-jsx-a11y": "^6.2.3",
"eslint-plugin-react": "^7.14.2",
"express": "^4.17.1",
"express-session": "^1.16.2",
"fbemitter": "^2.1.1",
"font-awesome": "^4.7.0",
"http-errors": "~1.6.2",
"i18next": "^19.0.1",
"i18next-browser-languagedetector": "^4.0.1",
"i18next-xhr-backend": "^3.2.2",
"moment": "^2.24.0",
"morgan": "^1.9.1",
"nodemon": "^1.19.1",
"path": "^0.12.7",
"pem": "^1.14.2",
"prop-types": "^15.7.2",
"proxy": "^1.0.1",
"react": "^16.12.0",
"react-bootstrap": "^1.0.0-beta.12",
"react-datepicker": "^2.9.6",
"react-dev-utils": "^9.0.1",
"react-dom": "^16.12.0",
"react-flexbox-grid": "^2.1.2",
"react-hooks-paginator": "^0.4.0",
"react-i18next": "^9.0.10",
"react-iframe": "^1.8.0",
"react-js-pagination": "^3.0.2",
"react-notifications-component": "^2.0.7",
"react-redux": "^7.1.1",
"react-router": "^5.0.1",
"react-router-dom": "^5.0.1",
"react-router-redux": "^4.0.8",
"react-scripts": "^3.3.1",
"react-select": "^3.0.8",
"react-spinners": "^0.6.1",
"react-switch": "^5.0.1",
"react-table": "^6.10.0",
"react-toastify": "^5.4.1",
"reactstrap": "^8.4.0",
"redux": "^4.0.4",
"redux-saga": "^1.1.1",
"request": "^2.88.2",
"simple-react-validator": "^1.2.2",
"socket.io": "^2.2.0",
"underscore": "^1.9.2"
},
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-core": "^6.26.3",
"babel-loader": "^7.1.5",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-plugin-transform-object-rest-spread": "^6.26.0",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-env": "^1.7.0",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"babel-preset-stage-0": "^6.24.1",
"braintree-web": "^3.58.0",
"css-loader": "^3.2.0",
"eslint": "^6.5.0",
"eslint-config-prettier": "^6.3.0",
"eslint-config-react-app": "^4.0.1",
"eslint-loader": "^2.2.1",
"eslint-plugin-flowtype": "^3.11.1",
"eslint-plugin-import": "^2.18.2",
"eslint-plugin-jsx-a11y": "^6.2.3",
"eslint-plugin-prettier": "^3.1.0",
"eslint-plugin-react": "^7.14.3",
"eslint-plugin-react-hooks": "^1.7.0",
"extract-text-webpack-plugin": "^3.0.2",
"file-loader": "^4.3.0",
"html-webpack-plugin": "^3.2.0",
"jest": "^24.8.0",
"mini-css-extract-plugin": "^0.7.0",
"node-sass": "^4.13.1",
"paypal-checkout": "^4.0.311",
"prettier": "^1.18.2",
"puppeteer": "^1.17.0",
"rimraf": "^2.7.1",
"sass-loader": "^7.1.0",
"url-loader": "^2.0.0",
"webpack": "^4.34.0",
"webpack-cli": "^3.3.6",
"webpack-dev-server": "^3.7.1"
},
"nodemonConfig": {
"ext": "js, html, scss",
"ignore": [
"node_modules/*",
"build/*",
"dist/*",
"scripts/*",
".git"
],
"exec": "sh ./scripts/build-watch.sh"
}
}
操作系统和终端:
Windows 10,git bash
尝试的方法:
1)npm安装
2)npm install --save-dev
3)再次尝试npm install删除已删除的node_modules文件夹
4)删除package-lock.json,node_modules文件夹,然后再次尝试npm install
5)检查是否存在于node_modules中,它是否存在。
6)使用git-bash终端,尝试切换到cygwin终端。
7)与使用Windows一样,尝试重新启动计算机。 (对不起,如果它伤害了您:()
8)经过验证的文件夹结构,可以。
注意:
代码库在讨论拉动之前可以正常工作,拉动之后会造成问题,但是即使拉动之后,其他团队成员也可以正常工作。
我在package.json
中看不到Braintree,它在您团队成员的PC中有效,因为他们可能是分开安装了。有时,在开发功能时,我往往会忘记将其添加到package.json
中,因为它需要尝试一堆软件包,因此该软件包已经在node_modules
文件夹中。也有可能有人忘记git add
package.json。
无论如何,要添加并添加到package.json
中并推动,
npm i braintree --save
并在git add package.json
之后推动它>