我有一个用ES6编写的应用程序,我使用babel来转换该应用程序中的所有文件。这个应用程序还包括一个带有React组件的node_module(也是用ES6编写的)。
我正在导入这样的组件:
import { Box } from 'components/Box'
当我跑步时
babel-node --presets es2015,stage-0,react
在导入Box组件的文件上,我在第1行的components / Box文件中出错:
(function (exports, require, module, __filename, __dirname) { import React, { Component } from 'react'
^^^^^^
SyntaxError: Unexpected token import
我认为发生这种情况的原因是因为babel-node没有转换node_modules。这是有道理的,因为大多数节点模块都是以commonjs格式编写的。有没有办法将这个特定的节点模块列入白名单,以便进行转换?
答案 0 :(得分:0)
您能提供更多信息吗?也许你指的其他文件?你想要实现什么目标?
我尝试运行以下package.json
,但效果很好。
{
"name": "babel-node-test",
"version": "1.0.0",
"description": "",
"main": "something.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"babel-preset-es2015": "^6.5.0",
"babel-preset-react": "^6.5.0",
"react": "^0.14.7"
}
}
将这些文件作为测试:
something.js
import { Box } from './components/Box';
和
components/box.js
import React, { Component } from 'react';
class Box extends Component{
}
export default Box;
另外,在旁注上,引用文档:
不适合生产使用你不应该使用babel-node 生产。这是不必要的沉重,由于高内存使用率 缓存存储在内存中。你也将经历一个 整个应用程序需要编译时启动性能损失 苍蝇。
为什么不使用此处提到的任何构建系统https://babeljs.io/docs/setup/