如何撤消/还原“ npm审核修复程序”

时间:2020-06-10 14:26:01

标签: npm

如标题所述。我已在cmd中运行npm audit fix。现在我无法运行npm run build,因为它给了我错误。如何撤消npm audit fix?有这样的命令吗?

运行npm audit fix后出现此错误:

D:\SUBLIME\REACT>npm run build

> uploadpublish@1.0.0 build D:\SUBLIME\REACT
> webpack --mode production

D:\SUBLIME\REACT\node_modules\webpack-cli\bin\config-yargs.js:136
                                describe: optionsSchema.definitions.output.properties.path.description
                                                                           ^

TypeError: Cannot read property 'properties' of undefined
    at module.exports (D:\SUBLIME\REACT\node_modules\webpack-cli\bin\config-yargs.js:13
    at D:\SUBLIME\REACT\node_modules\webpack-cli\bin\webpack.js:59:27
    at Object.<anonymous> (D:\SUBLIME\REACT\node_modules\webpack-cli\bin\webpack.js:514
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:22:18)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! uploadpublish@1.0.0 build: `webpack --mode production`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the uploadpublish@1.0.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\VERYNICE\AppData\Roaming\npm-cache\_logs\2020-06-10T14_43_53_493Z-debug.log

1 个答案:

答案 0 :(得分:2)

不幸的是, npm 中不存在撤消功能,因此保留了package.json文件的先前状态,以及package-lock.json和{{1 }}(这些文件是可选的),可以通过npm-shrinkwrap.json(或简称为npm install)进行恢复。

通常,在像您这样的情况下,您只需使用git之类的版本控制系统将所有更改都还原为npm ipackage.json。当然,如果您已将这些文件的先前版本保存在某处,则也可以手动执行此操作。当前的package-lock.json文件不受npm-shrinkwrap.json的影响,因此不得还原。

然后,您可以使用npm update安装项目依赖项的旧版本。 请记住,package-lock.json优先于package.json,并且npm i文件使用语义版本控制(通用)。 package.json文件优先于两个文件。甚至还有一些细微的差异,但是我认为这个答案太过分了。

有关更多详细信息,您可以参考以下文档:

所以我希望您在某个地方有备份或先前的git commit。否则,您可以尝试通过阅读错误消息并使用引发此错误的较旧版本的程序包(在您的情况下为npm-shrinkwrap.json)来尝试解决错误。另外,此程序包的依赖性可能是问题的原因。但是,如果您决定采用这种方式,请花点时间。祝好运! :)