2017-02-10 61 views
1

我使用的是没有npm的React(由于服务器端的限制)。在我<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之JavaScript版本从

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

和我text/babel script标签内尝试包括与任何

// 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

尝试在此包含你的项目。 https://cdnjs.cloudflare.com/ajax/libs/react-chartjs/0.8.0/react-chartjs.js – nbkhope

+1

ouch no npm?你能否详细说明这个限制?这是2015年后任何一种客户端开发的主要支柱 – azium

回答

0

好吧,这是一个可怕的黑客使用PHP,但它是我发现的唯一选项。我也没有可用的npm服务器。因此,我不使用JavaScript导入或包管理器(如browserify),但它们仍然需要npm,因此我使用PHP从多个文件创建单个大内容:

<script type="text/babel"> 

<?php 

include 'BDRMLElement.js'; 

?> 

... 

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

</script> 
相关问题