【问题标题】:Using "npm run build" fails with "npm ERR! missing script: build"使用“npm run build”失败并出现“npm ERR!缺少脚本:构建”
【发布时间】:2018-04-30 19:37:44
【问题描述】:

如何解决此错误,我正在运行 Windows 10

当我尝试在 cmd 上 npm run build 时出现此错误

C:\Users\anai_> npm run build
npm ERR! missing script: build

这是运行日志

0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'run',
1 verbose cli   'build' ]
2 info using npm@5.5.1
3 info using node@v9.1.0
4 verbose config Skipping project config: C:\Users\anai_/.npmrc. (matches userconfig)
5 verbose stack Error: missing script: build
5 verbose stack     at run (C:\Program Files\nodejs\node_modules\npm\lib\run-script.js:151:19)
5 verbose stack     at C:\Program Files\nodejs\node_modules\npm\lib\run-script.js:61:5
5 verbose stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:115:5
5 verbose stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:402:5
5 verbose stack     at checkBinReferences_ (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:357:45)
5 verbose stack     at final (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:400:3)
5 verbose stack     at then (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:160:5)
5 verbose stack     at ReadFileContext.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:332:20)
5 verbose stack     at ReadFileContext.callback (C:\Program Files\nodejs\node_modules\npm\node_modules\graceful-fs\graceful-fs.js:78:16)
5 verbose stack     at FSReqWrap.readFileAfterOpen [as oncomplete] (fs.js:437:13)
6 verbose cwd C:\Users\anai_
7 verbose Windows_NT 10.0.15063
8 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "build"
9 verbose node v9.1.0
10 verbose npm  v5.5.1
11 error missing script: build
12 verbose exit [ 1, true ]

虽然错误是指缺少脚本构建,但我在 package.json 中放置了一个“构建”脚本

{
  "name": "es6",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "build": "webpack"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "webpack": "^3.8.1"
  }

}

这是我的 webpack.config.js 文件

module.exports = {
  entry: ['./app/index.js'],
  output: {
    path: './build',
    filename: 'bundle.js'

  }
}

谁能告诉我如何解决这个错误或者它是从哪里来的。我是使用 node.js、webpack 和命令行的新手。提前感谢您的宝贵时间!

【问题讨论】:

  • 你是从你的项目目录运行命令吗?

标签: npm webpack atom-editor


【解决方案1】:

首先检查你的根文件夹中有 .babelrc 文件。

如果你已经拥有

将此添加到您的 package.json 文件中

"scripts": {
    "dev": "webpack --config=Scripts/config/webpack.dev.js --watch",
    "build": "webpack --config=Scripts/config/webpack.prod.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

【讨论】:

    【解决方案2】:

    检查您的 package.json 构建中是否存在,如果没有,则在脚本中提及它

     "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "watch": "ts-node-dev --respawn src/Union.ts",
        "serve": "ts-node-dev src/function.ts",
        "build": "tsc"
      },
    

    【讨论】:

      【解决方案3】:
      1. 尝试将 webpack.config.js 中的 output.path 设置为绝对路径

        module.exports = {
            entry: ['./app/index.js'],
            output: {
                path: __dirname + '/build',
                filename: 'bundle.js'
            }
        }
        

        我没有 Windows(在 Linux 上),但使用节点 8.16.0 和 npm 6.4.1,复制你的 package.json 和 webpack.config.js,我收到以下错误:

        Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
         - configuration.output.path: The provided value "./build" is not an absolute path!
            -> The output directory as **absolute path** (required).
        

        查看更多关于绝对路径的东西here

      2. 由于您使用的是 Windows,请检查您的文件行尾(CRLF 与 LF)。如果您从其他地方克隆了代码,则取决于您的 git 配置,它可能会延续不同的行尾。您可以在 VSCode 的右下角快速检查行尾。

      模仿您的设置的步骤:

      1. 复制了你的 package.json 和 webpack.config.js
      2. 运行npm i(或npm install
      3. 运行npm run build - 收到上述无效配置错误
      4. 将 output.path 更改为与 __dirname 连接的绝对路径(不确定 Windows 是否不同...)
      5. 重新运行npm run build 并得到:
        ERROR in multi ./app/index.js
        Module not found: Error: Can't resolve './app/index.js' in '/tmp/es6'
        @ multi ./app/index.js
        
      6. 运行mkdir app &amp;&amp; touch app/index.js(在linux中,创建文件夹'app',然后在app文件夹中创建index.js文件)
      7. 重新运行 npm run build 并成功:

        > es6@1.0.0 build /tmp/es6
        > webpack
        
        Hash: 0578ec98b09c215702c6
        Version: webpack 3.12.0
        Time: 34ms
            Asset     Size  Chunks             Chunk Names
        bundle.js  2.59 kB       0  [emitted]  main
        [0] multi ./app/index.js 28 bytes {0} [built]
        [1] ./app/index.js 0 bytes {0} [built]
        

      【讨论】:

        【解决方案4】:

        包括"build": "webpack --config webpack.conf.js" 不起作用!

        我尝试了webpack --config webpack.config.js,它运行良好,但在升级到 4.41.2 并使用了一段时间后,

        "scripts": {
              "test": "echo \"Error: no test specified\" && exit 1",
              "watch": "webpack --watch",
              "build": "webpack"
            },
        

        这对我很有效。由于我使用的是 webpack 4.41.2,因此最好确保构建对版本正确

        【讨论】:

          【解决方案5】:

          我遇到了同样的问题,但后来我意识到我忘记安装 Angular CLI,

          那么我做了什么来解决这个问题:

          1. 我在我的npm 安装文件夹中执行这个命令:

          npm install -g @angular/cli

          1. 然后我新建一个Angular项目,ng new project-name

          之后我就可以执行npm run build

          希望对您有所帮助。

          【讨论】:

            【解决方案6】:

            删除空的 ui src 文件夹(或您通常存储 package-lock.json 等的位置)也可能会有所帮助。例如,当您在不同的分支之间结帐和切换时可能会出现这种情况,并且某些分支已经删除了 ui src 文件夹,但 git 不会删除空文件夹。

            【讨论】:

              【解决方案7】:

              你把 "npm run build && gh-pages -d build" 放在你的部署脚本中,但是你需要告诉 npm 当 npm run build 是做什么正在运行。将构建配置为构建项目所需运行的任何命令。

              由于您使用的是 webpack,我假设它是 webpack --config webpack.conf.js。使用 gulp、gulp build、使用 TypeScript tsc -p tsproject.json 等等。这取决于您的项目。

              您可以在此处查看完整的文章: https://github.com/npm/npm/wiki/Troubleshooting#a-brief-note-on-the-built-in-windows-configuration

              【讨论】:

              • 部署脚本是什么意思?我那里没有部署脚本。
              • 尝试用@joseh-charles 建议的'build': ' webpack --config webpack.conf.js' 替换您的构建命令
              猜你喜欢
              • 2022-01-20
              • 2022-06-23
              • 2020-09-02
              • 2023-04-08
              • 1970-01-01
              • 1970-01-01
              • 2021-03-03
              • 1970-01-01
              • 2020-12-31
              相关资源
              最近更新 更多