代码之家  ›  专栏  ›  技术社区  ›  Jesse Shieh José Valim

npm修剪坏路径?无法执行安装脚本

  •  2
  • Jesse Shieh José Valim  · 技术社区  · 6 年前

    当我跑的时候 npm prune 我得到以下(详细的)错误

    npm info lifecycle elm@0.19.0-bugfix2~install: elm@0.19.0-bugfix2
    
           > elm@0.19.0-bugfix2 install node_modules/elm
           > binwrap-install
    
    sh: 1: binwrap-install: not found
    npm verb lifecycle elm@0.19.0-bugfix2~install: unsafe-perm in lifecycle true
    npm verb lifecycle elm@0.19.0-bugfix2~install: PATH: /tmp/build/.heroku/node/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/tmp/build/apps/web/node_modules/elm/node_modules/.bin:/tmp/build/.heroku/node/bin:/tmp/build/.platform_tools:/tmp/build/.platform_tools/erlang/bin:/tmp/build/.platform_tools/elixir/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    npm verb lifecycle elm@0.19.0-bugfix2~install: CWD: node_modules/elm
    npm info lifecycle elm@0.19.0-bugfix2~install: Failed to exec install script
    npm timing action:install Completed in 79ms
    npm verb unlock done using /app/.npm/_locks/staging-4628ace6b39e4e32.lock for /tmp/build/apps/web/node_modules/.staging
    npm timing stage:rollbackFailedOptional Completed in 62ms
    npm timing stage:runTopLevelLifecycles Completed in 6364ms
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules/fsevents):
    npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
    npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Valid OS:    darwin
    npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Valid Arch:  any
    npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Actual OS:   linux
    npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Actual Arch: x64
    
    npm verb stack Error: elm@0.19.0-bugfix2 install: `binwrap-install`
    npm verb stack spawn ENOENT
    npm verb stack     at ChildProcess.<anonymous> (/tmp/build/.heroku/node/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:48:18)
    npm verb stack     at ChildProcess.emit (events.js:182:13)
    npm verb stack     at maybeClose (internal/child_process.js:961:16)
    npm verb stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:248:5)
    npm verb pkgid elm@0.19.0-bugfix2
    npm verb cwd /tmp/build/apps/web
    npm verb Linux 4.15.0-36-generic
    npm verb argv "/tmp/build/.heroku/node/bin/node" "/tmp/build/.heroku/node/bin/npm" "prune" "--verbose"
    npm verb node v10.7.0
    npm verb npm  v6.1.0
    npm ERR! file sh
    npm ERR! code ELIFECYCLE
    npm ERR! errno ENOENT
    npm ERR! syscall spawn
    npm ERR! elm@0.19.0-bugfix2 install: `binwrap-install`
    npm ERR! spawn ENOENT
    npm ERR! 
    npm ERR! Failed at the elm@0.19.0-bugfix2 install script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
    npm verb exit [ 1, true ]
    npm timing npm Completed in 6866ms
    

    binwrap-install 我想是因为 PATH 不正确。我验证了二进制存在于这里。

    ls -l node_modules/.bin/binwrap-install
    lrwxrwxrwx 1 js js 30 Nov  9 23:48 node_modules/.bin/binwrap-install -> ../binwrap/bin/binwrap-install
    

    但是,这个

    node_modules/.bin
    

    相反,它包括

    node_modules/elm/node_modules/.bin
    

    在详细日志中,我看到了可能相关的内容。

    npm info linkStuff binwrap@0.2.0
    npm verb linkBins [ { 'binwrap-install': 'bin/binwrap-install',
    npm verb linkBins     'binwrap-prepare': 'bin/binwrap-prepare',
    npm verb linkBins     'binwrap-test': 'bin/binwrap-test' },
    npm verb linkBins   '/tmp/build/apps/web/node_modules/elm-format/node_modules/.bin',
    npm verb linkBins   false ]
    npm info linkStuff fstream@0.1.31
    npm info linkStuff unzip@0.1.11
    npm info linkStuff binwrap@0.1.4
    npm verb linkBins [ { 'binwrap-install': 'bin/binwrap-install',
    npm verb linkBins     'binwrap-test': 'bin/binwrap-test' },
    npm verb linkBins   '/tmp/build/apps/web/node_modules/.bin',
    npm verb linkBins   false ]
    

    路径 npm修剪 包括 node_modules/.bin 文件夹?

    0 回复  |  直到 6 年前
        1
  •  1
  •   neurodynamic    5 年前

    尝试切换到Elm 0.19.1。

    no longer relies on binwrap

        2
  •  0
  •   Joey Nick    5 年前

    我最初的命令是:

    $ sudo npm install elm -g
    

    日志是:

    npm ERR! elm@0.19.0-bugfix2 install: binwrap-install
    

    我试图移除npm。

    $ cd /usr/local/lib
    $ sudo rm -R node_modules
    

    然后:

    $ sudo apt install npm
    

    然后:

    $ sudo apt install elm -g
    

    我现在安装了elm 0.19.0。