我从my sample project's根文件夹运行npm install
,使用package.json
中的脚本构建它。
构建需要几个当前在prepublish
脚本中的转换步骤,但是npm version4显示了一个即将发生重大变化的警告,这让我相信新的prepare
构建事件脚本更适合未来。
C:\code\antlr4ts-json>npm install
npm WARN prepublish-on-install As of npm@5, `prepublish` scripts will run only for `npm publish`.
npm WARN prepublish-on-install (In npm@4 and previous versions, it also runs for `npm install`.)
npm WARN prepublish-on-install See the deprecation note in `npm help scripts` for more information.
...
不幸的是,简单地将脚本从prepublish
移到prepare
会破坏向后兼容性:如果有人使用npm@3
__运行npm install
,那么prepare
中的构建步骤就会被忽略。
升级我的构建时脚本的最佳实践是什么?理想情况下,我希望更新我的package.json
,以便npm install
可以在任何npm@>=3上工作,但也可以选择生成一个明确的错误消息,指出在使用npm@3运行npm install
时需要npm@>=4。
Bakground:我试着包括
"engines": { "npm": ">=4.0.0" },
多亏了@toomuchdesign (和其他人),我理解了为什么它不能做我想要的事情;engines
只检查我的包是作为依赖项安装的,而不是有人从源代码构建它。这事儿可以理解。
我跟踪了这个计划中的更改的背景,直到npm issue #10074,这解释了为什么需要一个突破性的更改。然而,我仍然不清楚如何更好地处理过渡。
https://stackoverflow.com/questions/44037774
复制相似问题