美文网首页
npm 模块安装问题

npm 模块安装问题

作者: 过桥 | 来源:发表于2016-12-27 17:37 被阅读13537次

    使用npm进行模块安装

    安装命令

    npm install formidable
    

    问题:执行命令目录不正确 / 找不到package.json

    `-- formidable@1.0.17
    
    npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\xxxx\package.json'
    npm WARN Neil No description
    npm WARN Neil No repository field.
    npm WARN Neil No README data
    npm WARN Neil No license field.
    

    解决办法

    切换<code>npm</code>目录

    C:\Users\xxxx>cd C:\Program Files\nodejs\node_modules\npm
    

    解决办法

    初始化生成<code>package.json</code>文件

    npm install -g
    ####问题:无相关权限
    ```bash
    npm ERR! Windows_NT 10.0.14393
    npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "formidable"
    npm ERR! node v6.2.0
    npm ERR! npm  v3.8.9
    npm ERR! path C:\Program Files\nodejs\node_modules\npm\node_modules\.staging
    npm ERR! code EPERM
    npm ERR! errno -4048
    npm ERR! syscall mkdir
    
    npm ERR! Error: EPERM: operation not permitted, mkdir 'C:\Program Files\nodejs\node_modules\npm\node_modules\.staging'
    npm ERR!     at Error (native)
    ......
    

    解决办法

    1、打开对应目录

    C:\Windows\System32

    2、以管理员身份运行

    cmd.exe

    3、输入 <code>npm install formidable</code> 命令,等待提示安装成功

    C:\Program Files\nodejs\node_modules\npm>npm install formidable
    npm@3.8.9 C:\Program Files\nodejs\node_modules\npm
    `-- formidable@1.0.17  extraneous
    

    问题:重命名文件名异常

    源码

    var form = new formidable.IncomingForm();
      form.parse(request, function(error, fields, files) {
        fs.renameSync(files.upload.path, "/tmp/test.png");
    

    异常

      return binding.rename(pathModule._makeLong(oldPath),
                     ^
    
    Error: EXDEV: cross-device link not permitted, rename 'C:\Users\xxxx\AppData\Local\Temp\upload_e835305b073c34bf9219b7d0290fad46' -> 'E:\tmp\test.png'
        at Error (native)
        at Object.fs.renameSync (fs.js:803:18)
    

    解决办法

    指定form上传路径,默认指向系统盘

    var form = new formidable.IncomingForm();
    form.uploadDir='tmp' 
    

    相关文章

      网友评论

          本文标题:npm 模块安装问题

          本文链接:https://www.haomeiwen.com/subject/pprevttx.html