从GitHub下载模块并按照说明进行构建后,我尝试使用以下方法将其拉入现有项目:

> npm install ../faye

这似乎起到了作用:

> npm list
/home/dave/src/server
└─┬ faye@0.7.1
  ├── cookiejar@1.3.0
  ├── hiredis@0.1.13
  └── redis@0.7.1

但是Node.js找不到模块:

> node app.js
node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: Cannot find module 'faye'
    at Function._resolveFilename (module.js:334:11)
    at Function._load (module.js:279:25)
    at Module.require (module.js:357:17)
    at require (module.js:368:17)
    at Object.<anonymous> (/home/dave/src/server/app.js:2:12)
    at Module._compile (module.js:432:26)
    at Object..js (module.js:450:10)
    at Module.load (module.js:351:31)
    at Function._load (module.js:310:12)
    at Array.0 (module.js:470:10)

我真的很想了解这里发生了什么,但我有点不知所措,不知道下一步该去哪里。有什么建议吗?


当前回答

在我的情况下,

npm install -D tslib @types/node

解决了我的问题,我就可以跑了

ts-node index.ts

成功地

其他回答

更改目录并指向当前项目文件夹,然后单击“npm install”。.

这将将所有依赖项和模块安装到项目文件夹中。

从项目中删除node_module根文件夹(例如:myApp)。转到myApp文件夹,然后从终端键入以下命令

>myApp>npm install

它将安装项目所需的所有依赖模块。

我有一个非常类似的问题。删除整个node_modules文件夹并重新安装对我很有用:

rm -rf node_modules
npm install

我可以再加一个地方检查;我尝试使用的软件包是我自己发布给私人NPM回购的另一个软件包。我忘记正确配置package.json中的“main”属性。因此,该包位于消费包的node_modules文件夹中,但我得到的是“找不到模块”。我花了几分钟才意识到自己的错误-(

如果使用nvm,请检查绑定到其他库的现有node_module是否编译为正确的node.js版本。

我也犯了同样的错误。原因如下:我们使用nvm是因为我们在一台服务器上运行两个应用程序,一个需要Node.js 5.6,因为它使用Node gd(目前不在Node.js 6上运行),另一个需要Node.js 6。Node.js 6是apt-get安装。

我们还使用pm2工具进行部署。

因此,默认设置是当nvm未生效时pm2进程启动,因此它使用Node.js(版本6)的apt-get安装。因此,主pm2守护进程从Node.js 6开始。如果我在fork模式下运行应用程序,它们将在单独的进程中启动,并且nvm设置生效。当我以集群模式运行应用程序时,它们继承了非nvm环境。

因此,当我尝试切换到集群模式时,应用程序未能启动,因为为5.6编译的绑定失败,并显示此消息。

我通过在nvm设置生效时重新启动pm2解决了这个问题。此外,还应修复启动脚本。