首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >npm未构建Contextify版本-未找到节点路径?

npm未构建Contextify版本-未找到节点路径?
EN

Stack Overflow用户
提问于 2011-09-01 03:20:07
回答 3查看 6K关注 0票数 2

我正在打包一个节点应用程序,以便在没有npm的服务器上部署。我相信我已经弄明白了--我使用npm根据package.json文件在本地的node_modules文件夹中安装了所有的依赖项。

看起来一切运行正常,但当我尝试从服务器运行节点文件时,它报告它Cannot find module '../build/Release/contextify'

这是有道理的,因为在node_modules/.npm/contextify/0.0.4/package/lib/contextify.js中,它请求有问题的文件,而node_modules/.npm/contextify/0.0.4/package/build没有名为Release的目录。我假设npm只是没有构建发行版,所以我切换回开发机器,并运行npm install -它没有任何错误,而且它似乎构建了上下文:

代码语言:javascript
复制
$ sudo npm install

> contextify@0.0.4 preinstall /path/to/node/stuff/node_modules/contextify
> node-waf clean || true; node-waf configure build

'clean' finished successfully (0.014s)
Setting srcdir to                        : /path/to/node/stuff/node_modules/.npm/contextify/0.0.4/package 
Setting blddir to                        : /path/to/node/stuff/node_modules/.npm/contextify/0.0.4/package/build 
Checking for program g++ or c++          : /usr/bin/g++ 
Checking for program cpp                 : /usr/bin/cpp 
Checking for program ar                  : /usr/bin/ar 
Checking for program ranlib              : /usr/bin/ranlib 
Checking for g++                         : ok  
Checking for node path                   : not found 
Checking for node prefix                 : ok /usr/local/Cellar/node/0.4.5 
'configure' finished successfully (0.043s)
Waf: Entering directory `/path/to/node/stuff/node_modules/.npm/contextify/0.0.4/package/build'
[1/2] cxx: src/contextify.cc -> build/default/src/contextify_1.o
[2/2] cxx_link: build/default/src/contextify_1.o -> build/default/contextify.node
Waf: Leaving directory `/path/to/node/stuff/node_modules/.npm/contextify/0.0.4/package/build'
'build' finished successfully (0.370s)

不幸的是,package/build目录仍然没有Release文件夹。

所以,我猜问题是contextify之所以无法构建是因为我的节点路径没有设置(我尝试了export NODE_PATH,但它似乎没有帮助...),或者是否有其他原因导致contextify看起来没有构建。

也许我漏掉了更大的东西?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-02 04:47:27

我也有同样的问题,

你可能想把这个问题添加到github上,作者可能会比在这里更快地帮助你。https://github.com/brianmcd/contextify/issues?sort=created&direction=desc&state=closed&page=1

票数 3
EN

Stack Overflow用户

发布于 2012-06-28 15:25:00

这个错误的修复方法是删除waf的"build“目录,然后重新配置。由于缺少NODE_PATH,网站管家缓存了错误的配置结果,所以即使你记住并设置了它,它实际上也不会编译任何东西,尽管配置没有报告错误。太傻了!

代码语言:javascript
复制
export NODE_PATH="/usr/local/lib/node_modules/"
rm -fr build
node-waf configure
node-waf build
票数 3
EN

Stack Overflow用户

发布于 2011-09-17 18:11:17

我认为您的本地nodejs版本是v.0.4。*而您的nodejs服务器版本是v0.5。*

请确保您的开发和生产使用相同版本的nodejs。如果您切换到v0.4。*我打赌您的问题将会得到解决。我注意到在5.*版本中,node-waf 'build‘配置从'default’切换到了'Release‘。

然而,有一个警告:

一些npm包正在使用(编译的)二进制文件。I.M.O,您不应该将“编译”的node_modules捆绑在一个包中,以便在没有npm的“不同”平台上部署它。你遇到问题只是个时间问题。(如上图所示)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7262251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档