在使用create-react-app
创建的新应用程序中,如何运行命令行脚本?以下操作失败:
$ npx create-react-app foo
[snip]
$ cd foo/
$ echo "import {App} from './src/App.js';" > test.js
$ node test.js
/private/tmp/foo/test.js:1
import {App} from './src/App.js';
^
SyntaxError: Unexpected token {
at Module._compile (internal/modules/cjs/loader.js:718:23)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:785:10)
at Module.load (internal/modules/cjs/loader.js:641:32)
at Function.Module._load (internal/modules/cjs/loader.js:556:12)
at Function.Module.runMain (internal/modules/cjs/loader.js:837:10)
at internal/main/run_main_module.js:17:11
我试过同时运行babel-node
和node --harmony
.我只需要一些方法让脚本成功运行,无论是更改脚本还是更改我的运行方式。
在脚本开头添加以下内容解决了我的问题:
process.env.BABEL_ENV = 'development';
process.env.NODE_ENV = 'development';
require('@babel/register')({
presets: [
'@babel/preset-env',
'babel-preset-react-app'
]
});
作为在文件中添加 require 和选项的替代方法,您还可以在 root 中创建 .babelrc 文件以保存选项,并在 cli 中使用 -r 作为 require 标志,如果您不想在文件中添加 require 语句,则 -r @babel/Register 作为替代方法。只是一个替代方案。根目录中的 .babelrc 文件:
{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": "current"
}
}
]
]
}
然后在 CLI 中
node -r @babel/register executeMyFileWithESModules.js
有关设置的更多详细信息,请参阅:https://stackoverflow.com/a/55309534/4263440或https://stackoverflow.com/a/55428342/4263440