在IBM i(以前称为iSeries / AS / 400)上安装node-sass

时间:2017-04-28 16:12:31

标签: node.js ibm-midrange node-sass

是否有人能够在IBM i上成功安装node-sass?

我目前正在运行Node 6.9.1,并且能够安装许多npm软件包。但是,@ angular / cli依赖于node-sass,显然,node-sass有一个编译组件让我很难安装。

我的第一个问题与能够下载二进制文件本身有关 - 由于我们的网络设置,IBM i无法从以下位置下载二进制文件:

  

https://github.com/sass/node-sass/releases/download/v4.5.2/aix-ppc-48_binding.node

我收到超时错误。我能够通过将SASS_BINARY_SITE更改为非https版本来解决这个问题:

export SASS_BINARY_SITE='http://github.com/sass/node-sass/releases/download'

但是,现在,即使二进制下载成功,当npm尝试测试二进制文件时,我也会收到以下错误:

  

测试二进制二进制有一个问题:错误:无法加载模块   /QOpenSys/QIBM/ProdData/OPS/Node6/lib/node_modules/node-sass/vendor/aix-ppc-48/binding.node。           该模块具有无效的幻数。

at Error (native)
at Object.Module._extensions..node (module.js:597:18)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at module.exports (/QOpenSys/QIBM/ProdData/OPS/Node6/lib/node_modules/node-sass/lib/binding.js:19:10)
at Object.<anonymous> (/QOpenSys/QIBM/ProdData/OPS/Node6/lib/node_modules/node-sass/lib/index.js:14:35)

然后npm尝试在本地构建二进制文件,但由于Python2在此计算机上不可用而失败。我可以请求安装Python2,这在我们的环境中是一个漫长的过程,但在我继续关注那个兔子洞之前,我想知道实际上是否可以让node-sass工作,如果是的话,是否还有另一个二进制,我可以指向npm install来代替使用。

或者,是否有另一种获取node-sass工作的方法?

1 个答案:

答案 0 :(得分:2)

截至2017年,这可能是不可能的。除了Python之外,您还需要整个cpp工具链来构建节点和节点插件。由于这对台式机来说已经是一项非常严格的要求,因此这样的系统将会有更难的时间。从他们的binding.gyp来看,只支持OS X,Windows和Linux。

众所周知,node-sass很难在整个节点使用基础上构建。

很可能你宁愿在Linux上有一个构建/ CI步骤来编译你的SASS文件并构建你的文物。