我创建了一个节点模块,该模块使用来自多个API的数据生成JSON
文件。它旨在将JSON
文件保存到您CMD/Terminal
内的任何目录中。
我能够将它自己成功地作为一个项目运行,但我已经独立于它要在其中使用的主项目开发了它。它已安装在主项目中,但只能在package.json
存在的地方运行,因为我的脚本别名所在的位置。
还有其他节点模块需要使用JSON
文件,但是一旦我导航到其他模块' CMD/Terminal
节点中的根目录想要使用该模块package.json
并且无法找到脚本别名,因为它不存在。
为每个模块添加脚本别名并不是一个可行的解决方案,因为该项目是原型并且不断被添加。
有没有办法让相关package.json
被引用并用于脚本别名,无论我在主项目中运行它的位置是什么?
我要解决这个问题吗?任何帮助将不胜感激。这是我的第一个问题,所以如果我做错了,请告诉我,以便我可以改进。提前谢谢。
答案 0 :(得分:0)
有点晚了,但仍然是一个答案。
我们最终选择了peteb的方法(感谢),只需从相应的包中使用它(具有内部脚本别名的包),并通过参数将其提供给外部文件路径。
这是有效的,因为参数的现有结构是:
Thread
尽管npm run <script> <arg1> <filepath>
参数应该是filepath
或pwd
,但两者的输出无论如何都是正常的文件路径。所以任何文件路径在理论上都可以工作,只要你不遇到任何其他问题就可以在其他地方寻找解决这个问题的方法,比如文件系统的长度太长等等。
可能值得一提的是,像这样的东西可能更适合NodeJS以外的环境。它看起来不像在内部使用包外的脚本是可能的,并且编程外部程序来处理这些问题可能更好。
我不像网站上的很多人那样精通NodeJS,但是如果可能的话,可能包含由%CD%
文件调用的代码的可执行文件也可以工作。 / p>