我有一个在php上运行的站点,它使用Node进行一些开发任务.目前,我们的团队依赖puppet来安装我们用于这些开发任务的节点模块,但是,我正在考虑转而在网站的根目录中使用package.json文件.
我的问题是:
我的php应用程序实际上是3个独立的站点,我们混合成一个(1个面向公众的站点,1个内部站点,1个面向客户端的站点),并且可能的情况是应用程序的某些安装依赖于不同的节点包(或不同版本的相同的pacakge).虽然我知道将这些应用程序分开并让每个应用程序管理自己的依赖项会很好,但是,有一种方法可以在一个站点中拥有多个package.json文件吗?
换一种说法:
/package.json
/site1/package.json
/site2/package.json
/site3/package.json
Run Code Online (Sandbox Code Playgroud)
或者,有没有办法让一个package.json处理多个应用程序的依赖项?
我不知道这是否有意义,让我知道我是否只是在这里离开了.谢谢!
我的 npm 工作区中有两个包api& cdk。我想在&package-lock.json内部创建一个单独的项目,因为这两个项目都将单独部署。目前,npm 工作区可以实现这一点吗?还有哪些其他替代方案或策略?apicdk
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 api\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 package.json\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 cdk\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 package.json\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 node_modules\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 package.json\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 package-lock.json \nRun Code Online (Sandbox Code Playgroud)\n 我有一个npm包,其结构如下:
./
./backend
./package.json
package.json
Run Code Online (Sandbox Code Playgroud)
所以基本上两个npm模块在同一个文件夹中,一个是另一个的子文件,文件结构明智.
我安装的方式是,我将一个安装后的脚本放在父package.json中:
"postinstall": "cd backend && npm install && cd .."
Run Code Online (Sandbox Code Playgroud)
如果我全局安装它会发生什么:它首先打印一些警告,基本上没有安装包.像这样:
npm WARN enoent ENOENT: no such file or directory, open '/usr/lib/node_modules/inschpektor/backend/node_modules/trim-newlines/package.json'
Run Code Online (Sandbox Code Playgroud)
那些出现在所有依赖关系中./backend/package.json.
我已经使用--unsafe-perm标志运行安装:
npm install -g inschpektor --unsafe-perm 它安装包含postinstall脚本的父package.json.
我得到的最终日志错误消息是这一个:
npm ERR! path /usr/lib/node_modules/inschpektor/backend/node_modules/ansi-regex/package.json
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open '/usr/lib/node_modules/inschpektor/backend/node_modules/ansi-regex/package.json'
npm ERR! enoent This is related to npm not being able to …Run Code Online (Sandbox Code Playgroud)