在javascript中使用浏览器模块

时间:2016-05-25 10:19:10

标签: javascript node.js browserify

我是javascript的新手,我在浏览器端遇到了与npm模块一起使用的一些问题。有人可以指点我正确的方向吗?

我有一个类似

的模块结构

add.js

 function add (a,b) {
  return a+b;
 }
 module.exports.add = add;

multiply.js

function multiply (a,b) {
  return a*b;
}
module.exports.multiply = multiply;

我有一个名为calculator.js的消费者模块,如下所示:

var adder=require('./add');
var multiplier=require('./multiply');

console.log(adder.add(1,2));
console.log(multiplier.multiply(1,2));

function sum(a,b){
   return adder.add (a,b);
}

 function product(a,b){
   return multiplier.add (a,b);
}

module.exports.sum = sum;
module.exports.product=product;

当我做'node calculator.js'时,我得到3&分别

我现在想在浏览器中使用此计算器模块。所以我做了以下事情:

  1. browserify calculator.js> cal.js
  2. 创建了一个html文件
  3. <html>
      <body>
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.js"></script>
        <script src='cal.js'></script>     
    
      </body>
    </html>
    
    1. 这会在控制台上打印出3和2。
    2. 但是我想使用计算器的方法来执行像
    3. 那样的cal
        <script>
              var cal=require('cal');     
         </script>
      

      这让我错误地说

        

      '模块名称“cal”尚未加载上下文:_。使用   要求([])'

      知道如何让它运行?在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您不需要require.js

相反,您可以告诉Browserify使calculator.js模块可用于require()。这也将使require函数可用于浏览器:

$ browserify -r ./calculator.js:cal > cal.js

要在浏览器中使用它:

<script src="cal.js"></script>
<script>
  var cal = require('cal');
  ...
</script>

更多信息here