如何在没有npm的情况下安装ESlint?

时间:2019-07-17 12:05:54

标签: node.js npm visual-studio-code eslint

我在没有Internet访问权限和节点(npm)的企业计算机上工作。 我已经手动下载了ESlint并将其安装到VS Code。现在它说我需要使用npm命令才能正常工作,我的问题是我如何在没有npm命令/节点的情况下全局运行ESlint?有可能吗?

这就是我得到的:

要使用ESLint,请通过在工作区文件夹Supreme中运行npm install eslint来安装eslint

或全局使用'npm install -g eslint'。安装eslint之后,您需要重新打开工作区。

尝试将其设置正确后,我得到:

PS C:\ inetpub \ wwwroot \ Supreme> eslint --init

eslint:术语'eslint'不被视为cmdlet,函数,脚本文件或可运行程序的名称。检查名称的拼写,或者是否包含路径,请验证路径是否正确,然后尝试

3 个答案:

答案 0 :(得分:0)

npm只是为您移动文件-如果您想在没有npm的情况下安装文件,只需将文件移动。

例如请抓住latest release of eslint from github,将其复制到您的“企业计算机”(网络/闪存驱动器?),然后打开包装。然后直接使用node path/to/bin/eslint.js调用它。

如果安装了node.js,它应该可以工作-否则,您将需要使用类似的方法进行安装。

要执行该命令而无需在命令前加上node,例如仅eslint,您需要在其旁边安装一个.cmd包装器。 npm使用cmd-shim

如果要在未安装node.js的情况下运行它,则需要将node.js运行时和eslint打包在一起-此选项包括pkgnexe

要使VSCode运行eslint,您需要通过向项目中添加tasks.js文件来设置自定义任务运行器-例如:

{
  // See https://go.microsoft.com/fwlink/?LinkId=733558
  // for the documentation about the tasks.json format
  "version": "2.0.0",
  "tasks": [
    {
      "label": "eslint-fix",
      "type": "shell",
      "command": "path/to/you/packaged/eslint --fix"
    }
  ]
}

然后,您可以使用Tasks: Run Task命令查找并执行它-或设置快捷方式-有关更多详细信息,请参见文档https://code.visualstudio.com/docs/editor/tasks#_custom-tasks

答案 1 :(得分:0)

我创建了一个Github存储库,用于在此处创建量身定制的Eslint独立二进制文件: Eslint-Standalone

这使用node,npm和pkg将eslint工具构建为二进制文件,例如用于win平台的exe。然后,在涉及npm时,您可以使用该exe并将其复制到网络中,但有限制。

答案 2 :(得分:0)

我发现我的发行版 Ubuntu 20.04 通过 apt 提供了 eslint(虽然已经过时,因为最多只支持 ES2018),所以我不需要通过 npm 安装它。创建 .eslintrc.json 需要我有一个 package.json,但是一旦我创建了 .eslintrc.* 文件,我就可以摆脱 package.json

然后,只要存在 eslintrc 文件,我就可以在任何地方运行 eslint ~/some_code.js。您可以使用 -c 指定要使用的任何 eslintrc 文件,例如。 eslint -c ~/.eslintrc.json some_code.js

示例 .eslintrc.json 用于在浏览器中运行代码、使用空格、unix 换行符、字符串的双引号以及始终使用分号:

{
    "env": {
        "browser": true,
        "es6": true
    },
    "extends": "eslint:recommended",
    "parserOptions": {
        "ecmaVersion": 2018
    },
    "rules": {
        "indent": [
            "error",
            4
        ],
        "linebreak-style": [
            "error",
            "unix"
        ],
        "quotes": [
            "error",
            "double"
        ],
        "semi": [
            "error",
            "always"
        ]
    }
}