react-sortable-mixinがbrowserify-shimグローバルを尊重していないという問題があります:sortableモジュールが私のpackage.jsonファイル内でソート可能な宣言私のバンドルにパッケージ化してください。私は他のモジュールと同様の問題に遭遇しているので、私のところでは設定上の問題があるかもしれません。browserify-shimソート可能なグローバルがreact-sortable-mixinによって認識されない
package.json
{
"name": "test",
"version": "1.0.0",
"description": "Just a test",
"main": "index.js",
"dependencies": {
"react": "^0.14.8",
"sortablejs": "^1.4.2"
},
"devDependencies": {
"browserify-shim": "^3.8.12"
},
"browserify": {
"transform": [
"browserify-shim"
]
},
"browserify-shim": {
"react": "global:React",
"sortablejs": "global:Sortable",
"sortablejs/react-sortable-mixin": {
"depends": "sortablejs:Sortable"
}
}
}
index.js
"use strict";
var React = require('react');
var SortableMixin = require('sortablejs/react-sortable-mixin');
:私は単に問題を実証するために、sortbable-ミックスインを反応させ、反応し、必要と小さなテストパッケージを作成しました
react-sortable-mixin.js(モジュールの最初の部分...)
しかしながら、上述のようにソート可能が含まれている...% BROWSERIFYSHIM_DIAGNOSTICS=1 browserify index.js -t browserify-shim -o bundle.js
{ file: '/home/jlafosse/test/index.js',
info:
{ package_json: '/home/jlafosse/test/package.json',
packageDir: '/home/jlafosse/test',
shim: undefined,
exposeGlobals: { react: 'React', sortablejs: 'Sortable' },
browser: undefined,
'browserify-shim':
{ react: 'global:React',
sortablejs: 'global:Sortable',
'sortablejs/react-sortable-mixin': { depends: 'sortablejs:Sortable' } },
dependencies: { react: '^0.14.8', sortablejs: '^1.4.2' } },
messages:
[ 'Resolved "sortablejs/react-sortable-mixin" found in package.json to "/home/jlafosse/test/sortablejs/react-sortable-mixin"',
'Found depends "sortablejs" as an installed dependency of the package',
{ resolved:
{ '/home/jlafosse/test/sortablejs/react-sortable-mixin':
{ exports: null,
depends: { sortablejs: 'Sortable' } } } } ] }
{ file: '/home/jlafosse/test/index.js',
info:
{ package_json: '/home/jlafosse/test/package.json',
packageDir: '/home/jlafosse/test',
resolvedPreviously: true,
shim: undefined,
exposeGlobals: { react: 'React', sortablejs: 'Sortable' },
browser: undefined,
'browserify-shim':
{ react: 'global:React',
sortablejs: 'global:Sortable',
'sortablejs/react-sortable-mixin': { depends: 'sortablejs:Sortable' } },
dependencies: { react: '^0.14.8', sortablejs: '^1.4.2' } },
messages: [] }
私はバンドルに含まれていない反応するのでグローバルシミング作品を知っている:
(function (factory) {
'use strict';
if (typeof module != 'undefined' && typeof module.exports != 'undefined') {
module.exports = factory(require('./Sortable'));
}
else if (typeof define === 'function' && define.amd) {
define(['./Sortable'], factory);
}
else {
/* jshint sub:true */
window['SortableMixin'] = factory(Sortable);
}
})(function (/** Sortable */Sortable) { ...
はここbrowserifyから診断出力です。また、私のindex.jsファイルにsortablejs/react-sortable-mixinの代わりに( 'sortablejs')を必要とするだけであれば、Sortableはバンドルに含まれないので、私の設定が間違っているか、モジュールreact sortable-mixinの形式はbrowserify-shimを尊重しません。
何か助けていただければ幸いです。
'Sortable'ライブラリは、実際にはグローバルに、つまりスクリプトタグで使用できますか?同じ 'package.json'ファイルで' global:Sortable'と './node_modules/sortablejs/Sortable.js:Sortable'の両方を使うのは意味がありません。 – YPCrumble
@YPCrumble - はいブラウザ/クライアント側にソート可能なCDNを含めています。私は最初、 "sortablejs/react-sortable-mixin":{"depends": "Sortable"}を実行しようとしましたが、これはグローバルな "Sortable"を参照するように教えてくれました。 。 – Athan
私はあなたがbrowserify shim 'transform'指示文を指定していると思いますか?これはあなたの例 'package.json'にはありません。 – YPCrumble