我正在尝试开发一个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错误是什么意思?
答案 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"