新安装的 Angular CLI 给出错误而不是 运行
Freshly installed Angular Cli gives error rather than running
我一直在尝试安装最新的 angular-cli 以开始一个新项目,但我遇到了一个非常奇怪的问题。当我运行
npm install -g angular-cli@latest
angular-cli 似乎安装成功。但是,当我实际尝试使用它或使用
检查版本时
ng --version
我收到这个错误:
fs.js:640
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
TypeError: path must be a string or Buffer
at TypeError (native)
at Object.fs.openSync (fs.js:640:18)
at Object.fs.readFileSync (fs.js:508:33)
at Function.Version.fromProject (/Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/upgrade/version.js:87:31)
at Function.Version.isPreWebpack (/Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/upgrade/version.js:111:31)
at Function.Version.assertPostWebpackVersion (/Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/upgrade/version.js:97:18)
at /Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/bin/ng:25:15
at /Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/node_modules/resolve/lib/async.js:44:21
at ondir (/Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/node_modules/resolve/lib/async.js:187:31)
at /Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/node_modules/resolve/lib/async.js:153:39
我找到了很多类似错误的答案,但它们似乎都表明问题已在 v1.0.0-beta.15 中解决,而我应该安装 v1.0.0-beta.16。无论如何,当我遵循 most 流行的建议时,我发现注释掉 ng (Version.assertPostWebpackVersion();) 的第 25 行,我只是得到一个不同的错误:
→ ng --version
module.js:457
throw err;
^
Error: Cannot find module '../models/config'
at Function.Module._resolveFilename (module.js:455:15)
at Function.Module._load (module.js:403:25)
at Module.require (module.js:483:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/Users/ryan/node_modules/angular-cli/packages/angular-cli/addon/index.js:4:16)
at Module._compile (module.js:556:32)
at Object.Module._extensions..js (module.js:565:10)
at Module.load (module.js:473:32)
at tryModuleLoad (module.js:432:12)
at Function.Module._load (module.js:424:3)
at Module.require (module.js:483:17)
at require (internal/module.js:20:19)
at Function.Addon.lookup (/Users/ryan/node_modules/ember-cli/lib/models/addon.js:879:19)
at /Users/ryan/node_modules/ember-cli/lib/models/addons-factory.js:47:36
at visit (/Users/ryan/node_modules/ember-cli/lib/utilities/DAG.js:23:3)
at DAG.topsort (/Users/ryan/node_modules/ember-cli/lib/utilities/DAG.js:82:7)
at AddonsFactory.initializeAddons (/Users/ryan/node_modules/ember-cli/lib/models/addons-factory.js:44:9)
at Project.initializeAddons (/Users/ryan/node_modules/ember-cli/lib/models/project.js:374:36)
at Function.Project.nullProject (/Users/ryan/node_modules/ember-cli/lib/models/project.js:131:16)
at Function.Project.projectOrnullProject (/Users/ryan/node_modules/ember-cli/lib/models/project.js:640:22)
at module.exports (/Users/ryan/node_modules/ember-cli/lib/cli/index.js:94:25)
at module.exports (/Users/ryan/node_modules/angular-cli/packages/angular-cli/lib/cli/index.js:45:10)
at /Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/bin/ng:36:5
at /Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/node_modules/resolve/lib/async.js:44:21
at ondir (/Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/node_modules/resolve/lib/async.js:187:31)
at /Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/node_modules/resolve/lib/async.js:153:39
at onex (/Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/node_modules/resolve/lib/async.js:93:22)
at /Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/node_modules/resolve/lib/async.js:24:18
在此先感谢您的帮助。
节点:v6.7.0
npm: 3.10.3
os: osx 埃尔卡皮坦
编辑:关于我当前设置的附加信息,根据答案提交中评论的要求:
→ npm list -g typescript
/Users/ryan/.nvm/versions/node/v6.7.0/lib
└─┬ angular-cli@1.0.0-beta.16
├─┬ @angular-cli/ast-tools@1.0.2
│ └── typescript@2.0.0
├─┬ typedoc@0.4.5
│ └── typescript@1.8.10
└── typescript@2.0.2
→ npm list -g webpack
/Users/ryan/.nvm/versions/node/v6.7.0/lib
└─┬ angular-cli@1.0.0-beta.16
└── webpack@2.1.0-beta.22
→ npm list -g angular-cli
/Users/ryan/.nvm/versions/node/v6.7.0/lib
└── angular-cli@1.0.0-beta.16
在没有 node_modules 和 package.json[=21 的目录中尝试 运行 ng --version
=],这会影响结果。
尝试执行以下操作来更新所有全局包:
npm update -g
我的 OS X 设置
> ng --version
angular-cli: 1.0.0-beta.16
node: 6.7.0
os: darwin x64
> node -v
v6.7.0
> npm -v
3.10.8
> npm list -g typescript
/usr/local/lib
├─┬ angular-cli@1.0.0-beta.16
│ ├─┬ @angular-cli/ast-tools@1.0.2
│ │ └── typescript@2.0.0
│ ├─┬ typedoc@0.4.5
│ │ └── typescript@1.8.10
│ └── typescript@2.0.2
└─┬ typings@1.4.0
└─┬ typings-core@1.5.0
└── typescript@2.0.3
> npm list -g webpack
/usr/local/lib
├─┬ angular-cli@1.0.0-beta.16
│ └── webpack@2.1.0-beta.22
└── webpack@1.13.2
> npm list -g angular-cli
/usr/local/lib
└── angular-cli@1.0.0-beta.16
先决条件
首先,确保您拥有 Node 4.x 和 NPM 3.x。
请注意,Node 4.x(至少达到 4.4.2,可能是更新的版本)附带 NPM 2.x 而不是 3.x。
因此,如果您有 Node 4.x,请通过 运行ning 将 NPM 升级到最新版本:
npm i -g npm
(如果需要,使用 sudo
;顺便说一句,运行 如图所示安装,而不是更新)
如果您有 Node 0.10 或 0.12,您可能想要安装它,然后在您的 ~/
目录中查找任何提及 node 或 npm 的文件或文件夹并将它们删除。那些版本太粘了。
全新安装
现在,假设您拥有所有正确的版本,运行:
npm rm -g angular-cli
npm cache clear
npm i -g angular-cli
更多疑难解答
如果这不起作用,请重复前面的 3 行,但将 --no-optional
添加到安装行,这样就变成了:
npm rm -g angular-cli
npm cache clear
npm i -g angular-cli --no-optional
我一直在尝试安装最新的 angular-cli 以开始一个新项目,但我遇到了一个非常奇怪的问题。当我运行
npm install -g angular-cli@latest
angular-cli 似乎安装成功。但是,当我实际尝试使用它或使用
检查版本时ng --version
我收到这个错误:
fs.js:640
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
TypeError: path must be a string or Buffer
at TypeError (native)
at Object.fs.openSync (fs.js:640:18)
at Object.fs.readFileSync (fs.js:508:33)
at Function.Version.fromProject (/Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/upgrade/version.js:87:31)
at Function.Version.isPreWebpack (/Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/upgrade/version.js:111:31)
at Function.Version.assertPostWebpackVersion (/Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/upgrade/version.js:97:18)
at /Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/bin/ng:25:15
at /Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/node_modules/resolve/lib/async.js:44:21
at ondir (/Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/node_modules/resolve/lib/async.js:187:31)
at /Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/node_modules/resolve/lib/async.js:153:39
我找到了很多类似错误的答案,但它们似乎都表明问题已在 v1.0.0-beta.15 中解决,而我应该安装 v1.0.0-beta.16。无论如何,当我遵循 most 流行的建议时,我发现注释掉 ng (Version.assertPostWebpackVersion();) 的第 25 行,我只是得到一个不同的错误:
→ ng --version
module.js:457
throw err;
^
Error: Cannot find module '../models/config'
at Function.Module._resolveFilename (module.js:455:15)
at Function.Module._load (module.js:403:25)
at Module.require (module.js:483:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/Users/ryan/node_modules/angular-cli/packages/angular-cli/addon/index.js:4:16)
at Module._compile (module.js:556:32)
at Object.Module._extensions..js (module.js:565:10)
at Module.load (module.js:473:32)
at tryModuleLoad (module.js:432:12)
at Function.Module._load (module.js:424:3)
at Module.require (module.js:483:17)
at require (internal/module.js:20:19)
at Function.Addon.lookup (/Users/ryan/node_modules/ember-cli/lib/models/addon.js:879:19)
at /Users/ryan/node_modules/ember-cli/lib/models/addons-factory.js:47:36
at visit (/Users/ryan/node_modules/ember-cli/lib/utilities/DAG.js:23:3)
at DAG.topsort (/Users/ryan/node_modules/ember-cli/lib/utilities/DAG.js:82:7)
at AddonsFactory.initializeAddons (/Users/ryan/node_modules/ember-cli/lib/models/addons-factory.js:44:9)
at Project.initializeAddons (/Users/ryan/node_modules/ember-cli/lib/models/project.js:374:36)
at Function.Project.nullProject (/Users/ryan/node_modules/ember-cli/lib/models/project.js:131:16)
at Function.Project.projectOrnullProject (/Users/ryan/node_modules/ember-cli/lib/models/project.js:640:22)
at module.exports (/Users/ryan/node_modules/ember-cli/lib/cli/index.js:94:25)
at module.exports (/Users/ryan/node_modules/angular-cli/packages/angular-cli/lib/cli/index.js:45:10)
at /Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/bin/ng:36:5
at /Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/node_modules/resolve/lib/async.js:44:21
at ondir (/Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/node_modules/resolve/lib/async.js:187:31)
at /Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/node_modules/resolve/lib/async.js:153:39
at onex (/Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/node_modules/resolve/lib/async.js:93:22)
at /Users/ryan/.nvm/versions/node/v6.7.0/lib/node_modules/angular-cli/node_modules/resolve/lib/async.js:24:18
在此先感谢您的帮助。
节点:v6.7.0
npm: 3.10.3
os: osx 埃尔卡皮坦
编辑:关于我当前设置的附加信息,根据答案提交中评论的要求:
→ npm list -g typescript
/Users/ryan/.nvm/versions/node/v6.7.0/lib
└─┬ angular-cli@1.0.0-beta.16
├─┬ @angular-cli/ast-tools@1.0.2
│ └── typescript@2.0.0
├─┬ typedoc@0.4.5
│ └── typescript@1.8.10
└── typescript@2.0.2
→ npm list -g webpack
/Users/ryan/.nvm/versions/node/v6.7.0/lib
└─┬ angular-cli@1.0.0-beta.16
└── webpack@2.1.0-beta.22
→ npm list -g angular-cli
/Users/ryan/.nvm/versions/node/v6.7.0/lib
└── angular-cli@1.0.0-beta.16
在没有 node_modules 和 package.json[=21 的目录中尝试 运行 ng --version
=],这会影响结果。
尝试执行以下操作来更新所有全局包:
npm update -g
我的 OS X 设置
> ng --version
angular-cli: 1.0.0-beta.16
node: 6.7.0
os: darwin x64
> node -v
v6.7.0
> npm -v
3.10.8
> npm list -g typescript
/usr/local/lib
├─┬ angular-cli@1.0.0-beta.16
│ ├─┬ @angular-cli/ast-tools@1.0.2
│ │ └── typescript@2.0.0
│ ├─┬ typedoc@0.4.5
│ │ └── typescript@1.8.10
│ └── typescript@2.0.2
└─┬ typings@1.4.0
└─┬ typings-core@1.5.0
└── typescript@2.0.3
> npm list -g webpack
/usr/local/lib
├─┬ angular-cli@1.0.0-beta.16
│ └── webpack@2.1.0-beta.22
└── webpack@1.13.2
> npm list -g angular-cli
/usr/local/lib
└── angular-cli@1.0.0-beta.16
先决条件
首先,确保您拥有 Node 4.x 和 NPM 3.x。
请注意,Node 4.x(至少达到 4.4.2,可能是更新的版本)附带 NPM 2.x 而不是 3.x。
因此,如果您有 Node 4.x,请通过 运行ning 将 NPM 升级到最新版本:
npm i -g npm
(如果需要,使用 sudo
;顺便说一句,运行 如图所示安装,而不是更新)
如果您有 Node 0.10 或 0.12,您可能想要安装它,然后在您的 ~/
目录中查找任何提及 node 或 npm 的文件或文件夹并将它们删除。那些版本太粘了。
全新安装
现在,假设您拥有所有正确的版本,运行:
npm rm -g angular-cli npm cache clear npm i -g angular-cli
更多疑难解答
如果这不起作用,请重复前面的 3 行,但将 --no-optional
添加到安装行,这样就变成了:
npm rm -g angular-cli npm cache clear npm i -g angular-cli --no-optional