Babel 上的 npm 运行 脚本错误

npm run script error on Babel

我打算在构建期间而不是 运行 期间 t运行sform JSX。首先,我使用以下命令安装了 2 个 babel 工具:

$npm install --save-dev babel-cli babel-preset-react
$node_modules/.bin/babel src --presets react --out-dir static

然后在package.json中,我在脚本部分添加了以下内容。

...
"scripts": {
    "compile": "babel src -presets react -out-dir static",
    "watch": "babel src -presets react -out-dir static -watch",
    "test": "echo \"Error: no test specified\" && exit 1"
},
...

我的文件夹目录如下:

Mern\node_modules
Mern\src\app.jsx
Mern\static\app.js
Mern\static\index.html
Mern\package.json
Mern\server.js

当我运行命令:npm 运行编译时,出现了一系列错误。

> pro_mern_stack@1.0.0 compile         /Users/comp/Documents/mern
> babel src -presets react -out-dir static

-d doesn't exist. -i doesn't exist. -r doesn't exist

npm ERR! Darwin 16.6.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "compile"
npm ERR! node v7.10.0
npm ERR! npm  v4.2.0
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! pro_mern_stack@1.0.0 compile: `babel src -presets react -out- dir static`
npm ERR! Exit status 2
npm ERR! 
npm ERR! Failed at the pro_mern_stack@1.0.0 compile script 'babel src -presets react -out-dir static'.
npm ERR! Make sure you have the latest version of node.js and npm installed.

npm 错误!如果你这样做,这很可能是 mern 包的问题, 错误!不是 npm 本身。

我想就此处缺少的内容寻求建议,或者它是否与 installation/configuration 或文件夹结构有关?

您的 npm 脚本中缺少一些 '-',一定是这样的:

"scripts": {
"compile": "babel src --presets react --out-dir static",
"watch": "babel src --presets react --out-dir static --watch",
"test": "echo \"Error: no test specified\" && exit 1"
},

当您使用“-”时 - 它是选项的简短版本,每个选项只需要 1 个字符,当您像 -dir 这样写时,命令看起来像:-d -i -r,但是 ' --' 采用选项的全名。比如:'-v' 和 '--version' 在大多数情况下是相同的,但需要不同的标记。

首先,您需要从 static/app.js 中删除 app.js -- 将其保留在 babel 上。

第二个你的 App.jsx 在路径上 - static/src 但你 运行 的命令说 src --presets 将其更改为 static/src --presets

请不要弄乱 package.json 中的脚本对象。