从create-react-app运行CLI脚本

时间:2019-06-18 22:47:09

标签: node.js create-react-app

在使用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-nodenode --harmony。无论是更改脚本还是更改我的运行方式,我都只需要某种方法即可成功运行脚本。

2 个答案:

答案 0 :(得分:0)

在脚本的开头添加以下内容解决了我的问题:

process.env.BABEL_ENV = 'development';
process.env.NODE_ENV = 'development';

require('@babel/register')({
  presets: [
    '@babel/preset-env',
    'babel-preset-react-app'
  ]
});

答案 1 :(得分:0)

作为在文件中添加require和options的一种替代方法,您还可以在root用户中创建一个.babelrc文件来保存选项,并在cli中使用-r作为require标志,-r @ babel / register as如果您不想在文件中添加require语句,则使用另一种方法。只是一种选择。 根目录中的.babelrc文件:

console.log('*'.repeat(10)); // **********

然后在cli

{
 "presets": [
   [
     "@babel/preset-env",
     {
       "targets": {
         "node": "current"
      }
     }
   ]
  ]
 }

有关设置的更多详细信息,请参见:https://stackoverflow.com/a/55309534/4263440 要么 https://stackoverflow.com/a/55428342/4263440