无法使用require关键字

时间:2016-10-24 16:02:29

标签: javascript node.js backbone.js commonjs

我需要一些帮助,因为我对javascript和nodejs世界相当新,而且我被卡住了..

我有一个nodejs app项目,我在其中安装了依赖项(npm install),然后在我的.js文件中,我加载了我的模块,如:var Backbone = require('backbone'),它运行良好。

但后来我尝试安装Backbone.DOMStorage(https://github.com/mikeedwards/Backbone.DOMStorage)模块......

我做了npm install https://github.com/mikeedwards/Backbone.DOMStorage并且安装正常(js文件存在于node_modules文件夹中),但是当我尝试使用require('Backbone.DOMStorage')加载它时,它无法找到并加载模块... < / p>

根据我在多次搜索后的理解,似乎该插件不符合CommonJS ..

那么如何将此脚本转换为能够像任何其他模块一样使用它?

谢谢!

1 个答案:

答案 0 :(得分:0)

我会告诉你4种方法做你想做的事。

第一种方式

它是一个js插件,这就是你需要像这样将它添加到HTML页面的原因。 包含Backbone.js后包含Backbone.domStorage:

<script type="text/javascript" src="backbone.js"></script>
<script type="text/javascript" src="backbone.domStorage.js"></script>

并像这样使用

window.SomeCollection = Backbone.Collection.extend({

    localStorage: new Backbone.LocalStorage("SomeLocalCollection"), // Unique name within your app.

    // ... everything else is normal.

});

第二种方式 如果您使用的是browserify。

使用npm install backbone.localstorage进行安装,并需要模块。

Backbone.LocalStorage = require("backbone.localstorage");

第三种方式

RequireJS

包括RequireJS:

<script type="text/javascript" src="lib/require.js"></script>

RequireJS config:

require.config({
    paths: {
        jquery: "lib/jquery",
        underscore: "lib/underscore",
        backbone: "lib/backbone",
        localstorage: "lib/backbone.localStorage"
    }
});

将您的收藏定义为模块:

define("SomeCollection", ["localstorage"], function() {
    var SomeCollection = Backbone.Collection.extend({
        localStorage: new Backbone.LocalStorage("SomeCollection") // Unique name within your app.
    });

    return SomeCollection;
});

需要你的收藏:

require(["SomeCollection"], function(SomeCollection) {
  // ready to use SomeCollection
});

第四种方式

从GitHub下载js文件,并在需要它之后将它放到你的库文件目录中

var domStorage = requier('yourLibPath/backbone.domStorage.js');