2016-01-19 3 views
0

Я пытаюсь разработать библиотеку НПМ, но когда я использую его в другое приложение, например:Невозможно импортировать модуль ES2015

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

Как вы компиляции? Вы используете babel? –

+0

@HenrikAndersson yes with '" babel-preset-es2015 ":"^6.1.2 ", " babel-preset-react ":"^6.1.2 ", " babelify ":"^7.2.0 ",' – Tjorriemorrie

ответ

2

В настоящее время невозможно импортировать код из node_modules, написанный на ES2015. Вы должны скомпилировать код в своей библиотеке в ES5. Например, используя столпотворение (с помощью NPM сценария):

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

Этот сценарий ожидает код ES2015 быть помещены в src/ каталог и выводит скомпилированный код в lib/ каталог

2

Ваша точка входа в библиотеку "main": "src/smallgrid.jsx".

Это означает, что вы пытаетесь обслуживать исходные файлы из своего пакета, а не скомпилированные.

Изменения в "main": "dist/js/smallgrid.js" в вашем package.json

Смежные вопросы