从创建-反应-应用程序运行 CLI 脚本



在使用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.我只需要一些方法让脚本成功运行,无论是更改脚本还是更改我的运行方式。

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

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

相关内容

  • 没有找到相关文章

最新更新