seajs初味ロードjqueryはnull解決学習ログを返します
今朝seajsを初めて食べて、とても卵が痛いことを発見しました.公式demoのjqueryを使うのは問題ありません.
公式最新版jquery 2.1.1発見consoleをダウンロードします.log($)はnullを返して、何も考えられません!助けを求めるしかない!
GitHubで玉伯の説明「jQueryプラグインなど非標準モジュールを直接呼び出す方法」を発見
しかし、この方法は2.3バージョンではもうだめらしい.modifyメソッドはこのバージョンで削除されました!
ここでの標準モジュールとはAMDとCMDの定義を指す
玉伯の知乎での詳しい回答を引用する
以下は玉伯の返事を引用して、皆さんはもっと深く理解します.
以上述べた方法はもう時代遅れなので、他の方法を試し続けるしかありません.
方法1:
それとも玉伯のボスの方法《seajs 2.1.1の中でseajs.modifyを取り除いた後で、どのようにpreload CDNの中のjqueryか?》
全体の文章は主にCMDモードの下でモジュールの内部でjqueryを使うように修正しないと言って、玉伯のボスはこのように推薦しないで、しかしやはり実現することができます
ただしjqueryファイルはseajsではありません.configには、headヘッダに直接ファイルを導入し、通常のようにseajs内部のイベントメカニズムでグローバルなjQueryオブジェクトを内部moduleに持ち込むようにトリガーする構成がある.exportsオブジェクト;
方法2:
もちろんCMD定義に従って一度jqueryをカプセル化する方法も簡単で、ソースコードを貼り付けてjqueryオブジェクトに戻るだけでいいです.
これでseajs.config導入ファイルは内部の他のモジュールで使用するが、ここではなぜ$であるかを返す.noConflict()は、w 3 c学校の紹介をご覧ください
方法3:
seajs公式jqueryパッケージ方法を参照
GitHubでダウンロード
ディレクトリsea-modules/jqueryにはパッケージされた1.10バージョンがあります.
最後にseajsプラグイン開発ガイドを添付します
公式最新版jquery 2.1.1発見consoleをダウンロードします.log($)はnullを返して、何も考えられません!助けを求めるしかない!
GitHubで玉伯の説明「jQueryプラグインなど非標準モジュールを直接呼び出す方法」を発見
しかし、この方法は2.3バージョンではもうだめらしい.modifyメソッドはこのバージョンで削除されました!
https://github.com/seajs/seajs/issues/286
ここでの標準モジュールとはAMDとCMDの定義を指す
玉伯の知乎での詳しい回答を引用する
http://www.zhihu.com/question/20351507/answer/14859415
以下は玉伯の返事を引用して、皆さんはもっと深く理解します.
@lifesinger , 。 RequireJs 。
, :
1. AMD UI?
2. SeaJs CMD NodeJs —— , , , ,
3. shim , var ejs = require('ejs') ejs ( ) , require('ejs'), ejs window 。
4. , SeaJs RequireJs ?
, RequireJS 。
@iahu
AMD , , , UI 。CMD , UI 。
SeaJS Node.js , :#275
shim ,require('ejs') ejs ejs, window ejs ,
seajs.config({
plugins: ["shim"],
alias: {
src: 'path/to/ejs.js',
exports: function() { var ejs = window.ejs; window.ejs = undefined; return ejs }
}})
RequireJS shim , SeaJS 。
以上述べた方法はもう時代遅れなので、他の方法を試し続けるしかありません.
方法1:
それとも玉伯のボスの方法《seajs 2.1.1の中でseajs.modifyを取り除いた後で、どのようにpreload CDNの中のjqueryか?》
https://github.com/seajs/seajs/issues/862
全体の文章は主にCMDモードの下でモジュールの内部でjqueryを使うように修正しないと言って、玉伯のボスはこのように推薦しないで、しかしやはり実現することができます
ただしjqueryファイルはseajsではありません.configには、headヘッダに直接ファイルを導入し、通常のようにseajs内部のイベントメカニズムでグローバルなjQueryオブジェクトを内部moduleに持ち込むようにトリガーする構成がある.exportsオブジェクト;
seajs.on('exec', function(module) {
if (module.uri === seajs.resolve('jquery')) {
window.$ = window.jQuery = module.exports;
}
});
方法2:
もちろんCMD定義に従って一度jqueryをカプセル化する方法も簡単で、ソースコードを貼り付けてjqueryオブジェクトに戻るだけでいいです.
define(function(){
//jquery
return $.noConflict();
});
これでseajs.config導入ファイルは内部の他のモジュールで使用するが、ここではなぜ$であるかを返す.noConflict()は、w 3 c学校の紹介をご覧ください
http://www.w3school.com.cn/jquery/core_noconflict.asp
seajs.config({
base : "../sea-modules/",
alias : {
"jquery" : "jquery.js"
}
});
define(function(require, exports, module){
var $ = require("jquery");
exports.showObj = function() {
console.log($);
}
});
方法3:
seajs公式jqueryパッケージ方法を参照
if ( typeof module === "object" && module && typeof module.exports === "object" ) {
module.exports = jQuery;} else {
if ( typeof define === "function" && define ) {
define( "jquery", [], function () { return jQuery; } );
}}if ( typeof window === "object" && typeof window.document === "object" ) {
window.jQuery = window.$ = jQuery;}
GitHubでダウンロード
https://github.com/seajs/examples
ディレクトリsea-modules/jqueryにはパッケージされた1.10バージョンがあります.
最後にseajsプラグイン開発ガイドを添付します
https://github.com/seajs/seajs/issues/264