无法导入ES2015模块

时间:2016-01-19 13:40:21

标签: reactjs npm ecmascript-6

我正在尝试开发一个npm库,但是当我在另一个应用程序中使用它时,例如:

import React from 'react';
import SmallGrid from 'react-smallgrid';


export default class Library extends React.Component{

我收到以下错误:

$ grunt browserify
Running "browserify:jsx" (browserify) task
>> /Users/me/code/myapp/node_modules/react-smallgrid/src/smallgrid.jsx:1
>> import React from 'react';
>> ^
>> ParseError: 'import' and 'export' may appear only with 'sourceType: module'
Warning: Error running grunt-browserify. Use --force to continue.

library以:

开头
import React from 'react';
import _ from 'lodash';


export default class SmallGrid extends React.Component{

这里有没有人知道这些可怕的javascript错误是什么意思?

2 个答案:

答案 0 :(得分:2)

目前无法从ES2015中编写的node_modules导入代码。您必须将库中的代码编译为ES5。例如使用babel(通过npm脚本):

"scripts": {
    "compile": "babel --presets es2015,stage-0 -d lib/ src/"
}

此脚本希望您的ES2015代码放在src/目录中,并将编译后的代码输出到lib/目录

答案 1 :(得分:2)

您进入图书馆的入口点是"main": "src/smallgrid.jsx"

这意味着您尝试从包中提供源文件而不是编译源文件。

更改为package.json中的"main": "dist/js/smallgrid.js"