2017-02-10 6 views
1

Я использую React без npm (из-за ограничений на серверы). В моем <head> тега я получил следующийРеагировать без npm - возможно ли импортировать библиотеки/модули?

<script src="https://unpkg.com/[email protected]/dist/react.js"></script> 
<script src="https://unpkg.com/[email protected]/dist/react-dom.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.34/browser.js"></script> 

И мой код реагировать упакован внутри тега text/babel сценария и отлично работает. Упрощенный пример:

<script type="text/babel"> 
    ReactDOM.render(
     <h1>Hello, world!</h1>, 
     document.getElementById('root') 
    );  
</script> 

Я хотел бы использовать внешний модуль для построения диаграмм. Однако, если я использую https://github.com/reactjs/react-chartjs (просто загрузив его и служить ему на месте), путем включения

либо

<script type="text/javascript" src="/js/react-chartjs/chart.js"></script> 

или

<script type="text/babel" src="/js/react-chartjs/chart.js"></script> 

выдает ошибку:

ReferenceError: require is not defined 

предположительно потому что require является командой npm. Я попытался использовать require.js, но опять же, это вызывает ошибки. Точно так же, если я служу яваскрипту версии chart.js от

https://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.2/Chart.min.js 

и в моем text/babel теге сценария попытаться включить библиотеку с любым из

// Using CommonJS 
var Chart = require('chart.js') 
var myChart = new Chart({...}) 

// ES6 
import Chart from 'chart.js' 
let myChart = new Chart({...}) 

// Using requirejs 
require(['path/to/Chartjs'], function(Chart){ 
var myChart = new Chart({...}) 
}) 

Он также кидает ошибку. Есть ли способ импортировать простые библиотеки javascript или реагировать на модули при использовании реакции без npm?

+0

Try включая эту в ваш проект. https://cdnjs.cloudflare.com/ajax/libs/react-chartjs/0.8.0/react-chartjs.js – nbkhope

+1

ouch no npm? не могли бы вы подробнее остановиться на этом ограничении? это крупный костыль для любого развития клиентской стороны после 2015 года – azium

ответ

0

Хорошо, так что это УЖАСНЫЙ взломать PHP, но это единственный вариант, который я нашел. У меня тоже нет сервера с npm. Таким образом, вместо того, чтобы использовать яваскрипт импорта или менеджер пакетов, как browserify, которые не работают, поскольку они по-прежнему требуют НПХ, я использую PHP для создания одного большого содержимого из нескольких файлов:

<script type="text/babel"> 

<?php 

include 'BDRMLElement.js'; 

?> 

... 

class App extends React.Component { 
... 
render() { 
    return (
     <div> 
      <BDRMLElement /> 
... 

</script>