我正在通过一些 Salesforce 闪电培训,作为其中的一部分,我安装了他们的 CLI,称为 SFDX。我使用 .bashrc 文件中的这一行将 SFDX bin 添加到路径中。
PATH=~/sfdx/bin:$PATH
作为闪电网络组件开发的一部分,使用了 jest 测试框架。我发现在尝试使用 运行一些示例测试npm run test:unit
时,我会收到以下错误。
internal/modules/cjs/loader.js:626
throw err;
^
Error: Cannot find module 'semver'
Require stack:
- /usr/share/npm/lib/utils/unsupported.js
- /usr/share/npm/bin/npm-cli.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:623:15)
at Function.Module._load (internal/modules/cjs/loader.js:527:27)
at Module.require (internal/modules/cjs/loader.js:681:19)
at require (internal/modules/cjs/helpers.js:16:16)
at Object.<anonymous> (/usr/share/npm/lib/utils/unsupported.js:2:14)
at Module._compile (internal/modules/cjs/loader.js:774:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:785:10)
at Module.load (internal/modules/cjs/loader.js:641:32)
at Function.Module._load (internal/modules/cjs/loader.js:556:12)
at Module.require (internal/modules/cjs/loader.js:681:19) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/usr/share/npm/lib/utils/unsupported.js',
'/usr/share/npm/bin/npm-cli.js'
]
}
我尝试重新安装 npm、node 和 sfdx。我还发现了关于该主题的讨论: https ://askubuntu.com/questions/1152570/npm-cant-find-module-semver-error-in-ubuntu-19-04 但是,没有一个建议的解决方案对我有帮助。
在 sfdx bin 目录中有一个名为 npm 的文件,其中只有以下内容:
#!/usr/bin/env node
require('../lib/cli.js')(process)
我在这里没有过多的经验,所以我不知道它想做什么。如果我从路径中删除 sfdx,所有 npm 命令都可以正常运行,但是我不能使用对我来说必不可少的那些命令来完成这项工作。
感谢您的任何建议!