首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Coding
V2EX  ›  程序员

npm 安装 electron 死活安不上

  •  
  •   dunhanson · 35 天前 · 2088 次点击
    这是一个创建于 35 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我用的管理员权限打开 cmd 的,但是一直提示 operation not permitted

    D:\electron-quick-start>cnpm install [email protected]^7.1.0 -g
    Downloading electron to C:\Users\dunhanson\AppData\Roaming\npm\node_modules\electron_tmp
    Copying C:\Users\dunhanson\AppData\Roaming\npm\node_modules\electron_tmp\[email protected]@electron to C:\Users\dunhanson\AppData\Roaming\npm\node_modules\electron
    Installing electron's dependencies to C:\Users\dunhanson\AppData\Roaming\npm\node_modules\electron/node_modules
    [1/3] @types/[email protected]^12.0.12 installed at node_modules\[email protected][email protected]@@types\node
    [2/3] [email protected]^1.0.3 installed at node_modules\[email protected]@extract-zip
    [3/3] @electron/[email protected]^1.0.1 installed at node_modules\[email protected][email protected]@@electron\get
    execute post install 2 scripts...
    [1/2] scripts.postinstall @electron/[email protected][email protected][email protected]^3.3.3 run "node postinstall || echo \"ignore\"", root: "C:\\Users\\dunhanson\\AppData\\Roaming\\npm\\node_modules\\electron\\node_modules\\[email protected]@core-js"
    [1/2] scripts.postinstall @electron/[email protected][email protected][email protected]^3.3.3 finished in 70ms
    [2/2] scripts.postinstall [email protected] run "node install.js", root: "C:\\Users\\dunhanson\\AppData\\Roaming\\npm\\node_modules\\electron"
    (node:1904) UnhandledPromiseRejectionWarning: Error: EPERM: operation not permitted, lstat 'C:\Users\DUNHAN~1\AppData\Local\Temp\electron-download-9qYJt2\electron-v7.1.0-win32-x64.zip'
    (node:1904) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
    (node:1904) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
    [2/2] scripts.postinstall [email protected] finished in 3s
    Recently updated (since 2019-10-29): 5 packages (detail see file C:\Users\dunhanson\AppData\Roaming\npm\node_modules\electron\node_modules\.recently_updates.txt)
      2019-11-03
        → @electron/[email protected][email protected] › @szmarczak/[email protected][email protected]^1.0.1(1.1.0) (00:04:18)
      2019-11-02
        → @types/[email protected]^12.0.12(12.12.5) (01:49:46)
      2019-11-01
        → @electron/[email protected][email protected][email protected]^2.0.2(2.0.3) (17:42:58)
        → @electron/[email protected][email protected][email protected]^3.3.3(3.3.6) (01:07:43)
      2019-10-31
        → @electron/[email protected][email protected][email protected]^2.14.2(2.14.3) (09:04:17)
    All packages installed (85 packages installed from npm registry, used 4s(network 1s), speed 980.54kB/s, json 81(180.96kB), tarball 1.06MB)
    [[email protected]] link C:\Users\dunhanson\AppData\Roaming\npm\[email protected] -> C:\Users\dunhanson\AppData\Roaming\npm\node_modules\electron\cli.js
    
    D:\electron-quick-start>npm -v
    
    33 回复  |  直到 2019-11-12 11:49:16 +08:00
        1
    kawowa   35 天前 via Android
    -g 安装时请开个管理员 cmd 或者 ps
        2
    binaryify   35 天前
    .npmrc
    加一行
    ELECTRON_MIRROR=http://npm.taobao.org/mirrors/electron/
        3
    dunhanson   35 天前
    @kawowa 我开了
        4
    dunhanson   35 天前
    @binaryify 加了毫无用处
    不过奇怪的是我公司的笔记本正常,我没有安装 cnpm 和配置淘宝镜像,也没有开管理员权限执行 cmd
        5
    circleee   35 天前
    如果你是用 vue 的写 直接用 vue 的脚手架
        6
    orzorzorzorz   35 天前
    看上去是没权限。如果是因为是要安装在系统目录里导致的权限问题的话,可以先装个 nvm,这样 npm i -g 会装在非系统目录里,能绕开这个问题。
    当然如果是因为有些文件因为墙没法下下来,那只能 npm 走代理了。
        7
    dunhanson   35 天前
    @circleee 不是 vue
        8
    dunhanson   35 天前
    @orzorzorzorz 我看提示的目录是用户临时目录下的,应该不存在没权限的问题,另外一台公司的笔记本啥都没配置,安装就正常的
        9
    dunhanson   35 天前
    @orzorzorzorz nvm 我研究下
        10
    cheeto   35 天前
        11
    dunhanson   35 天前
    @cheeto 😂这个我搜到过,不行
        12
    wlf92global   35 天前
    不要装 7.x.x 装 6.x.x,不要问为什么,问就是不知道。前几天才试的。
        13
    hantsy   35 天前
    尝试以下两步:

    1. 用 Admin 运行 NPM 全局安装。
    2. 这种估计必须用 代理,NPM 获取远程 electron 包。

    我本地安装成功。
        14
    hantsy   35 天前
    C:\Windows\system32>npm -g install electron
    C:\Users\hantsy\AppData\Roaming\npm\electron -> C:\Users\hantsy\AppData\Roaming\npm\node_modules\electron\cli.js

    > [email protected] postinstall C:\Users\hantsy\AppData\Roaming\npm\node_modules\electron\node_modules\core-js
    > node postinstall || echo "ignore"

    Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!

    The project needs your help! Please consider supporting of core-js on Open Collective or Patreon:
    > https://opencollective.com/core-js
    > https://www.patreon.com/zloirock

    Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)


    > [email protected] postinstall C:\Users\hantsy\AppData\Roaming\npm\node_modules\electron
    > node install.js

    + [email protected]
    added 86 packages from 90 contributors in 49.745s
        15
    hantsy   35 天前
    C:\Windows\system32>dir C:\Users\hantsy\AppData\Roaming\npm\node_modules\electron\dist
    Volume in drive C is SYSTEM
    Volume Serial Number is B0CF-8A64

    Directory of C:\Users\hantsy\AppData\Roaming\npm\node_modules\electron\dist

    11/06/2019 10:16 AM <DIR> .
    11/06/2019 10:16 AM <DIR> ..
    11/06/2019 10:16 AM 177,830 chrome_100_percent.pak
    11/06/2019 10:16 AM 315,644 chrome_200_percent.pak
    11/06/2019 10:16 AM 4,481,992 d3dcompiler_47.dll
    11/06/2019 10:16 AM 104,578,048 electron.exe
    11/06/2019 10:16 AM 2,128,896 ffmpeg.dll
    11/06/2019 10:16 AM 10,426,784 icudtl.dat
    11/06/2019 10:16 AM 141,824 libEGL.dll
    11/06/2019 10:16 AM 7,731,200 libGLESv2.dll
    11/06/2019 10:16 AM 1,060 LICENSE
    11/06/2019 10:16 AM 4,723,060 LICENSES.chromium.html
    11/06/2019 10:16 AM <DIR> locales
    11/06/2019 10:16 AM 82,118 natives_blob.bin
    11/06/2019 10:16 AM <DIR> resources
    11/06/2019 10:16 AM 8,657,700 resources.pak
    11/06/2019 10:16 AM 280,424 snapshot_blob.bin
    11/06/2019 10:16 AM <DIR> swiftshader
    11/06/2019 10:16 AM 701,096 v8_context_snapshot.bin
    11/06/2019 10:16 AM 5 version
    15 File(s) 144,427,681 bytes
    5 Dir(s) 65,923,194,880 bytes free
        16
    joe237   35 天前
    看样子是权限问题。尝试一下,右键用管理员身份打开 cmd,再安装试试。或者你试试用 yarn 来安装看看

    ```
    yarn global add electron

    ```
        17
    BoiledEgg   35 天前
    先降级到 6.1.4 安装吧,electron 7.1.0 build 时是下载到 ~\AppData\Local\Temp 文件夹的,似乎权限设置有问题
    而之前都是下载到~\AppData\Local\electron\Cache 的
        18
    strahe   35 天前
    ```
    registry=http://registry.npm.taobao.org/
    ELECTRON_MIRROR=https://npm.taobao.org/mirrors/electron/
    sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
    electron_custom_dir=7.0.1
    ```

    关键是 `electron_custom_dir` 手动写上安装的版本
        19
    dunhanson   35 天前
    @BoiledEgg @strahe
    回头我试试
        20
    dunhanson   35 天前
    @hantsy 尝试过全局安装
        21
    dunhanson   35 天前
    @joe237 我试试
        22
    dunhanson   35 天前
    @wlf92global 公司的笔记本正常,宿舍的电脑不行
        23
    micookie   35 天前 via Android
    一样的问题,我最后是手动解压安装的。
        24
    TargaryenChen   35 天前
    换个盘试试 别在 C 盘
        25
    dunhanson   35 天前
    @BoiledEgg 按你的方式安装低版本解决了
    但是搞不懂的是为啥我另外一台笔记本安装最新版本就没有问题
        26
    dunhanson   35 天前
    @joe237 用 yarn 也不行,我安装低版本解决了
        27
    dunhanson   35 天前
    @micookie 我试下手动安装看看
        28
    dunhanson   35 天前
    @micookie 离线包怎么安装?
        29
    micookie   34 天前
    有点忘记了,我也是折腾了好久。
    可以尝试下面 2 种方法
    1、全局安装 electron,配置到环境变量

    2、yarn 过程中,其实 electron 的包已经下载下来了,Windows 上在用户下的 AppData\Local\electron\Cache 中,把 zip 包手动解压到项目的 node_modules\electron\dist

    我记得当时好像是这么处理的。
        30
    dunhanson   34 天前
    @micookie
    😂不行,昨天晚上我就是这么做的,应该还有其它啥步骤
        31
    joe237   34 天前
    @dunhanson windows 平台实在是太特么的折磨了,不论是 7.x 还是 6.x 我这儿都装不上。同一时间开始搞的,在 mac 下的环境弄好了,demo 都 build 好了。。。
        32
    micookie   29 天前
    @dunhanson @joe237

    1、手动下载最新版本 electron

    https://npm.taobao.org/mirrors/electron/7.1.1/electron-v7.1.1-win32-x64.zip

    2、解压 electron zip 包到:项目目录下 node_modules\electron\dist

    3、在 项目目录下 node_modules\electron 下创建 path.txt 文件,内容是 项目目录 node_modules\electron\dist 的绝对路径

    亲测有效。


    过程是通过、node_modules\electron\install.js index.js 看出来的
        33
    micookie   29 天前
    3、在 项目目录下 node_modules\electron 下创建 path.txt 文件,写入 electron.exe
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2591 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 85ms · UTC 14:31 · PVG 22:31 · LAX 06:31 · JFK 09:31
    ♥ Do have faith in what you're doing.