2015-10-26 40 views
0

我曾经发表过jRCarousel jQuery插件来NPM。我最初得到的错误,名称不能包含大写字母,所以我已经改变了package.json,然后发布它发布,但在npm网站上,当我尝试“试试看”选项我得到的“ReferenceError:jQuery是未定义“错误。不知道为什么错误是因为我在package.json中指定了依赖关系。入门 “的ReferenceError:jQuery是没有定义” 为包安装在NPM

此外,如果只有package.json而不是包或模块中的任何其他文件发生任何更改,如何才能更新npm上的package.json文件,还是必须发布新的版本号。 (我想避免)。

这里是我的package.json

{ 
    "name": "jrcarousel", 
    "version": "1.0.0", 
    "description": "jRCarousel - jQuery Responsive Carousel, 
        a modern, lightweight responsive carousel plugin", 
    "main": "dist/jRCarousel.min.js", 
    "scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1" 
    }, 
    "repository": { 
    "type": "git", 
    "url": "https://github.com/vinayakjadhav/jRCarousel.git" 
    }, 
    "keywords": [ 
    "jquery-plugin", 
    "ecosystem:jquery", 
    "jQuery Resposive Carousel", 
    "jQuery slider", 
    "Responsive Slider", 
    "Carousel", 
    "Slider", 
    "Gallery", 
    "lightweight" 
    ], 
    "author": "Vinayak Rangnathrao Jadhav", 
    "license": "MIT", 
    "dependencies": { 
    "jquery": "^1.9.1" 
    }, 
    "bugs": { 
    "url": "https://github.com/vinayakjadhav/jRCarousel/issues" 
    }, 
    "homepage": "https://github.com/vinayakjadhav/jRCarousel", 
    "devDependencies": {} 
} 

npm package

Github Repository

TRY IT OUT Link

注:我是新来的故宫,寻觅了很多,但非常少的信息提供相关到jQuery插件发布。任何帮助表示赞赏。

+0

[关于UMD相关有用的链接](http://davidbcalhoun.com/2014/what-is-amd-commonjs-and-umd/) – vinayakj

+0

添加这两个标签不仅增加了标签碎片没有实际的好处。 [tag:npm]非常好,用于处理有关npm命令的问题。 –

+0

@ ArtjomB。其实这个问题与这些命令非常相关,因为在这种情况下npm是一个广泛的问题,添加这些标记会将其缩小到问题所在的位置。我也希望获得关于这些命令的信息,以便在不修改版本号的情况下使用它们,因为代码没有变化,只是package.json文件。 – vinayakj

回答

3

用这段代码包装你的插件。这是UMD模式,它允许你的插件在浏览器和大部分模块捆绑器中运行。

(function (root, factory) { 
    if (typeof define === "function" && define.amd) { 
     define(["jquery"], factory); 
    } else if (typeof exports === "object") { 
     module.exports = factory(require("jquery")); 
    } else { 
     factory(root.jQuery); 
    } 
}(this, function ($) { 
    ...your plugin code goes here... 
})); 
+0

谢谢@尼基塔格拉夫..我会试试看..并会看起来更多的UMD模式..所以如果我添加这个,我必须发布它(需要提供新版本号) – vinayakj

+0

是的,您需要添加此代码,提交并将所有内容推送到存储库,然后运行'npm version patch'和'npm publish'命令。 –

+0

你能否引导我一些更多的信息。正如我从上面的代码了解到的,如果客户端在项目中有AMD,jquery-plugin将被定义为模块,如果Node然后导出它,否则只是一个IIFE。所以目前(没有上面的代码)我正在做第三个案例,所以这意味着任何人都可以使用该插件,为什么[尝试](https://tonicdev.com/npm/jrcarousel)给出错误。 – vinayakj