【问题标题】:Error trying to create a project using React Native尝试使用 React Native 创建项目时出错
【发布时间】:2016-12-29 12:18:27
【问题描述】:

我一直在尝试使用 react native 并创建一个项目,但未能做到。

我正在使用来自https://facebook.github.io/react-native/docs/getting-started.html的说明

Node 和 watchman 已经安装好了,然后当我进入时:

npm install -g react-native-cli

我明白了:

/usr/local/bin/react-native -> /usr/local/lib/node_modules/react-native-cli/index.js
react-native-cli@1.0.0 /usr/local/lib/node_modules/react-native-cli
├── semver@5.3.0
├── minimist@1.2.0
├── chalk@1.1.3 (ansi-styles@2.2.1, escape-string-regexp@1.0.5, supports-color@2.0.0, has-ansi@2.0.0, strip-ansi@3.0.1)
└── prompt@0.2.14 (revalidator@0.1.8, pkginfo@0.4.0, read@1.0.7, winston@0.8.3, utile@0.2.1)

当我尝试这样做时:

react-native init AwesomeProject

我明白了:

This will walk you through creating a new React Native project in /Users/jaimito/AwesomeProject
Installing react-native package from npm...

npm WARN peerDependencies The peer dependency react@~15.2.1 included from react-native will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency 
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
npm ERR! Darwin 15.6.0
npm ERR! argv "/usr/local/Cellar/node/6.4.0/bin/node" "/usr/local/bin/npm" "install" "--save" "--save-exact" "react-native"
npm ERR! node v6.4.0
npm ERR! npm  v2.15.9
npm ERR! path /Users/jaimito/.npm/optimist/0.6.1
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall mkdir

npm ERR! Error: EACCES: permission denied, mkdir '/Users/jaimito/.npm/optimist/0.6.1'
npm ERR!     at Error (native)
npm ERR!  { Error: EACCES: permission denied, mkdir '/Users/jaimito/.npm/optimist/0.6.1'
npm ERR!     at Error (native)
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/Users/jaimito/.npm/optimist/0.6.1',
npm ERR!   parent: 'react-native' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/jaimito/AwesomeProject/npm-debug.log

`npm install --save --save-exact react-native` failed

如何防止错误发生?

我正在使用 Mac。

我在命令的开头使用了 sudo。但是当我这样做时:

cd AwesomeProject
react-native run-ios

我明白了:

fs.js:640
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: EACCES: permission denied, open '/Users/jaimito/.babel.json'
    at Error (native)
    at Object.fs.openSync (fs.js:640:18)
    at Object.fs.writeFileSync (fs.js:1333:33)
    at save (/Users/jaimito/AwesomeProject/node_modules/react-native/node_modules/babel-register/lib/cache.js:53:16)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)
    at Module.runMain (module.js:592:11)
    at run (bootstrap_node.js:394:7)
    at startup (bootstrap_node.js:149:9)
    at bootstrap_node.js:509:3

我一开始尝试使用 sudo,结果如下:

fs.js:640
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: EACCES: permission denied, open '/Users/jaimito/.babel.json'
    at Error (native)
    at Object.fs.openSync (fs.js:640:18)
    at Object.fs.writeFileSync (fs.js:1333:33)
    at save (/Users/jaimito/AwesomeProject/node_modules/react-native/node_modules/babel-register/lib/cache.js:53:16)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)
    at Module.runMain (module.js:592:11)
    at run (bootstrap_node.js:394:7)
    at startup (bootstrap_node.js:149:9)
    at bootstrap_node.js:509:3
~
Process terminated. Press <enter> to close the window

【问题讨论】:

  • 尝试:chmod 777 on "/Users/jaimito/.npm/optimist/0.6.1"
  • 或尝试使用 sudo 运行命令

标签: node.js command-line terminal react-native


【解决方案1】:

尝试以sudo 开始命令,它会授予您的命令在必要位置创建目录的权限。

【讨论】:

  • 我用过 sudo 但现在我尝试运行它时遇到了一个新问题。还有没有办法不必使用 sudo?
  • sudo 不是 mkdir 主目录中的目录的有效解决方案 ...
【解决方案2】:

如果您使用的是 Windows,请尝试使用管理员权限打开命令行。

如果您使用的是 mac 或 linux,请在命令开头键入 sudo。

无论如何。确保您的目标目录尚不存在。

【讨论】:

    【解决方案3】:

    对我来说,.npm 目录中的marked 目录属于root:wheel。尝试取回它;)(或marked 中的0.3.* 目录)

    chown -R `whoami` ~/.npm/marked
    

    如果需要的话

    sudo chown -R `whoami` ~/.npm/marked
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-22
      • 2019-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多