NPM 构建脚本不运行

Pet*_*all 1 node.js npm babeljs

我试图babel在我的项目中作为构建步骤运行,但它似乎不起作用。

我的package.json看起来像这样:

{
  "name": "module-name",
  "version": "1.0.0",
  "description": "My Module",
  "main": "build/index.js",
  "scripts": {
    "test": "karma start",
    "build": "./node_modules/.bin/babel src -d build"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-cli": "^6.23.0",
    "babel-preset-env": "^1.1.8"
  }
}
Run Code Online (Sandbox Code Playgroud)

并且.babelrc,在同一目录中,看起来像这样:

{
  "presets": ["env"]
}
Run Code Online (Sandbox Code Playgroud)

该命令npm test运行良好并且 Karma 测试运行。但是当我使用 时npm build --verbose,我只得到以下输出:

npm info it worked if it ends with ok
npm verb cli [ 'C:\\Program Files\\nodejs\\node.exe',
npm verb cli   'C:\\Users\\Peter\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js',
npm verb cli   'build',
npm verb cli   '--verbose' ]
npm info using npm@3.10.2
npm info using node@v6.9.3
npm verb exit [ 0, true ]
npm info ok
Run Code Online (Sandbox Code Playgroud)

但 Babel 命令没有运行,构建目录也没有创建。但是,./node_modules/.bin/babel src -d build直接从命令行运行该命令效果很好。

有什么想法可能导致问题吗?

Dav*_*yon 5

npm test内置的 npm 命令,但您的build命令不是内置的。

对于非内置的 npm 命令,您需要run它们:

npm run build

  • 有点迂腐 - [`npm build`](https://docs.npmjs.com/cli/build) 是一个内置的 NPM 命令,它只是不等同于 `npm run build`。唯一这样做的就是“test”、“start”、“stop”和“restart”。 (6认同)