卸载任何 ember-cli-* 插件会导致 ember-try-config 出错

uninstall any ember-cli-* addon cause an error with ember-try-config

准备:

  1. 安装embernpm install ember-cli
  2. 开始一个新项目:ember new ember-demo

现在,让我们尝试删除任何插件(我已尝试删除 ember-cli-jshintember-welcome-page),我们将破坏 ember 项目,对 [=19= 的任何调用] 实用程序会导致错误:

Error: Cannot find module 'ember-try-config'
at Function.Module._resolveFilename (module.js:339:15)
at Function.Module._load (module.js:290:25)
at Module.require (module.js:367:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/home/user/projects/ember-demo/node_modules/ember-cli/node_modules/ember-try/lib/utils/config.js:7:34)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Module.require (module.js:367:17)

这是我的环境:

host@user $ ember --version  --verbose
Could not start watchman; falling back to NodeWatcher for file system events.
Visit http://ember-cli.com/user-guide/#watchman for more info.
ember-cli: 2.6.2
http_parser: 2.7.0
node: 5.11.1
v8: 4.6.85.31
uv: 1.8.0
zlib: 1.2.8
ares: 1.10.1-DEV
icu: 56.1
modules: 47
openssl: 1.0.2h
os: linux x64

前一个问题

以前,我想在 ember 应用程序中使用 eslint 而不是 jshint。我只是按照 ember-cli-eslint github page 和 运行 这两个命令的说明操作:

npm uninstall --save-dev ember-cli-jshint
ember install ember-cli-eslint

在这之后我的项目变成了南瓜:没有人 ember 命令不起作用,抛出错误(见上文)

如果您 跳过卸载 步骤 - 您不会得到南瓜)) 在这种情况下 ember 继续按预期工作,但是 eslint 不会是默认项目的 linting 工具。

有谁知道,如何小心地从 ember 项目中删除 unused/unwanted 依赖项?

github ember-cli/ember-cli#6016 上有一个未解决的问题。所以我目前的解决方法:

  1. 创建新的 ember 应用程序
  2. 运行 ember install ember-cli-eslint
  3. package.json
  4. 中删除 ember-cli-jshint
  5. 删除 ./.jshintrc./tests/.jshintrc
  6. 删除本地节点模块rm -rm ./node_modules
  7. 重新安装节点模块:npm install

完成!

此外,ember 的 eslint 安装有非常详细的描述:https://github.com/ember-cli/ember-cli-eslint#user-content-disabling-jshint

根据 ember-try 插件 (https://github.com/ember-cli/ember-try ) 导致的错误消息问题 运行 在不同环境下进行测试(检查您的 package.json / node_modules )

如果是这样 - 你可以删除它或者只添加配置文件 config/ember-try.js 就像 ( https://github.com/vvscode/js--ember-cli-ajax-logger/blob/master/config/ember-try.js ) 它定义了你想要 运行 测试的 ember 版本