【问题标题】:my npm-lint is throwing error "missing script: lint"我的 npm-lint 抛出错误“缺少脚本:lint”
【发布时间】:2017-11-15 16:16:59
【问题描述】:

我正在尝试在本地运行 npm run,然后运行 ​​npm init,它创建了 package.json。这是我的 package.json

    "name": "ironic-ui",
    "version": "1.0.0",
    "description": "======================== Team and repository tags    ========================",
    "main": "test-shim.js",
    "directories": {
    "doc": "doc"
   },
    "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
   },
    "repository": {
    "type": "git",
    "url": "https://git.openstack.org/openstack/ironic-ui"
  },
    "author": "",
    "license": "ISC"
 }

有什么遗漏吗?还是我需要安装更多的东西?我收到错误“缺少脚本:lint” 谢谢

【问题讨论】:

  • 您正在运行什么命令导致错误消息?
  • npm run lint path_to_the_file_name.js

标签: node.js npm


【解决方案1】:

您需要设置 linter 并在 package.json 中添加 lint 命令 许多 linter 可用。假设你设置了 eslint https://www.npmjs.com/package/eslint

它看起来像这样

// package.json
{ 
  //...
  "scripts": {
    "lint": "eslint.js"
  }
}

【讨论】:

  • 我有这样的,“lint”:“eslint --no-color ironic_ui/static”
  • 去掉ironic_ui/static部分,然后再试npm run lint path_to_the_file_name.js
  • @roxxypoxxy 这个比较简单:"lint": "eslint"
  • @RyanZim 确实如此,并且会起作用,但我通常在本地范围内我的脚本只是确保我使用在我的 package.json 中定义的相同版本,而不是全局 :)
  • @roxxypoxxy 在脚本中本地安装总是优先于全局
【解决方案2】:

将此脚本添加到您的 package.json 文件中: "lint": "./node_modules/.bin/eslint ."

【讨论】:

  • "lint": "./node_modules/.bin/eslint" 最后没有空格和句号对我有用
【解决方案3】:

不应删除 eslint,而应尝试对其进行配置以使其符合您的偏好。

但是,如果您因为时间或其他限制需要删除它

  1. 从firebase.json删除"npm --prefix \"$RESOURCE_DIR\" run lint"
  2. 从Package.json删除"lint": "eslint .",(应该在脚本中:)
  3. 也从Package.json删除这些devDependencies
"eslint": "^7.6.0",
"eslint-config-google": "^0.14.0"`
  1. 从 repo `.eslintrc.js 中删除此文件
  2. 然后运行npm i

那么你应该可以运行firebase deploy

【讨论】:

  • 伟大的工作。解决了我的问题。
  • 为我工作! Flutter||Firebase||云函数||Firebase 消息传递
  • 这是完美的答案。
【解决方案4】:

如果您想从您的 Firebase Functions 项目中删除 eslint,您可以转到 firebase.json 并删除行 npm --prefix \"$RESOURCE_DIR\" run lint(在 predeploy 内)。之后,您可以删除函数项目中的.eslintrc.json 文件

【讨论】:

    【解决方案5】:

    我遇到了同样的问题。

    我删除了函数文件夹 .firebaserc 和 firebase.json。

    然后重新安装 firebase-tools

    npm install -g firebase-tools
    

    firebase init后,选择功能,询问

    你想使用 ESLint 来捕捉可能的.....?

    我输入了No。

    对我来说效果很好。

    【讨论】:

      【解决方案6】:

      当我这样做时,我遇到了完全相同的问题: firebase deploy --only 功能 (-- 只有函数是可选的),它会将我重定向到

      npm --prefix %RESOURCE_DIR% run lint
      

      当我去除棉绒时它对我来说很好,因此有:

      npm --prefix %RESOURCE_DIR% run
      

      仅限。

      【讨论】:

      • “去除棉绒”绝不是一个合适的答案
      【解决方案7】:

      我在一个项目中设置了一个 firebase 功能项目后遇到了这个问题,该项目在其他地方已经有一个 firebase 功能。看来firebase init 不一定知道在firebase.json 中将哪个项目设置为“源”。

      在我的例子中,firebase.json 只是指向了错误的源目录。我更正它以指向我想要的目录 - 问题解决了。

      注意:在我的情况下,需要 linting,因此去除 linting 不是解决方案。

      【讨论】:

        【解决方案8】:

        对我来说,我只是在没有进入函数文件夹的情况下运行命令,所以没有找到它,我只是在项目文件夹上运行这个函数。因此,如果您只是在项目文件夹中,则在您的 cmd 中运行 cd function 然后再次运行该命令,但如果脚本不在您的 package.json 中,如上所述,或者您对 eslint/lint 说不您初始化了您的 firebase 项目 lint 不起作用,但脚本中存在的其他命令起作用。

        【讨论】:

          【解决方案9】:

          将package.json 从"lint": "eslint .", 编辑为"lint": "eslint", 对我有用。

          【讨论】:

            猜你喜欢
            • 2017-04-10
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-06-07
            • 2017-08-04
            • 1970-01-01
            • 2018-05-24
            • 1970-01-01
            相关资源
            最近更新 更多