Yocto配方无法安装npm软件包

时间:2019-04-05 15:01:23

标签: npm yocto

我有一个安装了一些NPM软件包的食谱,该软件包可在Yocto的较早版本上使用。

升级到相扑后,配方失败,并显示以下错误: installnpmpackages / 0.0.1-r0 / temp / run.do_compile.7272:npm:未找到 |警告:从Shell命令退出代码127。

我尝试使用开发人员外壳,在这种情况下NPM确实可以工作。

配方中的do_compile:

do_compile() {
        # Create a working directory
        mkdir -p ${WORKDIR}/scratch

        # changing the home directory to the working directory, the .npmrc will be created in this directory
        export HOME=${WORKDIR}/scratch

        # configure cache to be in working directory
        npm set cache ${WORKDIR}/scratch/npm_cache

        # clear local cache prior to each compile
        npm cache clear

        # compile and install node modules in source directory
        cd ${WORKDIR}/scratch
        npm --arch=${TARGET_ARCH} --verbose install node-gyp
        npm --arch=${TARGET_ARCH} --verbose install connect
        npm --arch=${TARGET_ARCH} --verbose install socket.io
        #npm --arch=${TARGET_ARCH} --verbose install sqlite3
        #npm --arch=${TARGET_ARCH} --verbose install serialport
        npm --arch=${TARGET_ARCH} --verbose install express
        npm --arch=${TARGET_ARCH} --verbose install csv
        npm --arch=${TARGET_ARCH} --verbose install md5

        # clear local cache before we package. No need to copy over all this cache stuff; just need the modules.
        npm cache clear
}

注意sqlite3和serialport已被注释掉,因为它们在以前的版本中不起作用。

为了使NPM在配方中起作用,需要使用相扑(与morty)进行哪些更改?

提前谢谢!

2 个答案:

答案 0 :(得分:2)

我找到了一个简单的解决方案。

我使用devtool add创建了单个配方。

以下是用于为串行端口npm模块创建配方的命令:

devtool add "npm://registry.npmjs.org;name=serialport;version=7.1.4"

答案 1 :(得分:0)

我正在回复@Hsn评论,因为我的帐户是新帐户,并且我没有50个信誉。

如果您能够使用devtool添加配方并且可以正常工作,则也可以使用devtool完成该配方的工作,并告诉devtool您要将配方放在哪个meta中,例如:

devtool finish recipe_name meta-destination

并且为了将其放入最终的操作系统rootfs中,您需要将其添加到图像bb文件中,例如:image-dev.bb:

IMAGE_INSTALL_append += "recipe_name"

还要确保bblayers.conf中包含保存食谱的元数据。