我跑npm install
从my sample project's根文件夹中package.json
使用脚本来构建它。最佳实践@> = 4
构建需要在prepublish
脚本几个transpilation目前的步骤,但NPM版本4只显示一个警告,即重大更改快到了,导致我相信新prepare
生成事件的脚本是更长远的证明。
C:\code\antlr4ts-json>npm install
npm WARN prepublish-on-install As of [email protected], `prepublish` scripts will run only for `npm publish`.
npm WARN prepublish-on-install (In [email protected] 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
休息向后兼容移动脚本:如果有人使用[email protected]
运行npm install
,在prepare
构建步骤会被忽略。
升级我的构建时脚本的最佳做法是什么?理想情况下,我想更新我的package.json
使得npm install
作品任何NPM @> = 3,但是可替换地产生指示一个明确的错误信息NPM @> = 4在需要时npm install
使用运行在npm @ 3将是完全可以接受的。
Bakground:我试过包括
"engines": { "npm": ">=4.0.0" },
感谢@toomuchdesign(及其他),我明白了为什么这并不做我想做的; engines
只在我的包安装时检查作为依赖关系,而不是某人从源建立它。这就说得通了。
我跟踪了此计划更改的背景,降至npm issue #10074,这解释了为什么需要重大更改。不过,我仍然不清楚如何更好地处理过渡。
我已经更新了这个问题,这样可以很清楚我在寻找最好的做法在这里。我还更新了它,指向一个更简单的示例项目https://github.com/BurtHarris/antlr4ts-json –
更正了示例项目URL:https://github.com/BurtHarris/antlr4ts-json –
注意:I现在已经将我的解决方案投入到示例项目中。 –