我正在通过IBM Cloud上的工具链工具来开发应用程序,并通过Eclipse Orion IDE编辑代码。由于我不是通过本地cli访问此文件,因此我的理解是,为了调用npm install {package}
,我只需要将该包包含在package.json
文件中的依赖项和require
下在我的应用中但是,当我加载该应用程序时,未得到需求的定义,表明该软件包尚未安装。而且,require()
在启动应用程序的app.js
文件中正在使用,但不在我的public
目录中的文件中使用。
进一步研究之后,似乎可能与跟踪目录树的方式有关,因为错误仅在子目录中引发。例如,require('express')
在主目录app.js
中的./
中工作,但是在test.js
的{{1}}中调用时失败。我感觉好像缺少了一些非常简单的事情,例如端点配置或其他东西。
我一直在搜索,但是似乎无法找到如何加载软件包的方法,最好不要使用cli。感谢任何指针。谢谢!
更新:进一步研究之后,尝试从同一目录中的另一个文件请求时,我也得到模块未定义的错误。例如,./subdirectory/test.js
返回此错误。尝试module.exports = 'str'
返回时,未定义require。可能与节点如何包装功能有关?
更新2:在require('./file')
中尝试过"start": "npm install && node app.js"
,但是没有运气。添加在部署之前调用package.json
的构建阶段也不起作用
更新3:在添加npm install
构建阶段之后,我可以看到已经通过日志成功构建了依赖项。但是,未定义require的错误仍然存在。
更新4:即使存在所有软件包和依赖项,从CLI尝试npm安装也无法正常工作
更新5:运行npm install
或通过cf restage
配置缓存效果不佳
打开了有关部署here的相关问题
答案 0 :(得分:0)
发现我的困惑是由于我没有意识到require()
不能在客户端使用,除非通过Browserify之类的工具。