私はrequirejsを使用して製品の成果物を構成していますので、requirejsのgruntタスクを使用して適切なロードシーケンスを取得するためにライブラリを組み合わせてモジュールの依存関係を設定しています。ライブラリー・サーバーで非結合ライブラリーにアクセスできる間は、ランタイム・モジュール注入を使用しても問題はありません。わかりやすくするために、私はすべての細身化/ uglificationを無効にし、js美化を有効にしました。grunt-contrib-requirejsライブラリをラップしないでください。
requirejs: {
dist: {
// Options: https://github.com/jrburke/r.js/blob/master/build/example.build.js
options: {
// `name` and `out` is set by grunt-usemin
// name: 'App',
baseUrl: yeomanConfig.app + '/scripts',
mainConfigFile: yeomanConfig.app + '/scripts/config.js',
out: yeomanConfig.dist + '/scripts/main.js',
optimize: 'none',
// TODO: Figure out how to make sourcemaps work with grunt-usemin
// https://github.com/yeoman/grunt-usemin/issues/30
//generateSourceMaps: true,
// required to support SourceMaps
// http://requirejs.org/docs/errors.html#sourcemapcomments
beautify: false,
removeCombined: false,
generateSourceMaps: false,
preserveLicenseComments: false,
useStrict: true,
mangle: false,
compress: false,
// wrap: true,
// https://github.com/mishoo/UglifyJS2
}
}
},
私は、剣道、角度、角度のキノUIを使用しています。私は剣道がAMDモジュール対応であると理解していますが、Angular-Keno-UIはそうではありません。私はシムを作成することを期待していましたが、それは適切なrequirejs define関数でラップされていますが、これが起きているとは思われません。私はそのように自分自身をラップするモジュールの準備不足を解決するには
require.config({
cjsTranslate: true,
paths: {
jquery: 'vendor/jquery/jquery',
'angular-kendo-ui': 'vendor/angular-kendo-ui/build/angular-kendo',
kendo: 'vendor/kendoui.complete.2013.2.918.trial/js/kendo.all.min',
angular: 'vendor/angular/angular',
requirejs: 'vendor/requirejs/require',
'angular-animate': 'vendor/angular-animate/angular-animate',
'angular-ui-router': 'vendor/angular-ui-router/release/angular-ui-router.min',
'angular-resource': 'vendor/angular-resource/angular-resource'
},
shim: {
jquery: {
exports: '$'
},
angular: {
deps: [
'jquery'
],
exports: 'angular'
},
'angular-resource': {
deps: [
'angular'
]
},
'angular-kendo-ui': {
deps: [
'angular',
'kendo'
]
},
'angular-ui-router': {
deps: [
'angular'
]
}
}
});
:
define('angular-kendo-ui', [
'angular',
'kendo'
], function (
angular,
kendo
) {
< original angular-kendo-ui source >
});
は、私はシムのアプリケーションを誤解したことがありますか?それは私が持っていると、実際に定義されたパスをラップすることはありませんが、モジュールが要求されている場合は、むしろちょうどそれを指します(動的モジュールの読み込みではうまくいきます)
私はこれらの技術の最初の吟味の間、 requirejs(または私のパイプラインにある資産ミューテータの1つ)が自動的にモジュールを私のために包み込む方法がありました。誰も私のヒントを持って、私はそれがパスとして設定で定義されたモジュールをラップするrequirejsだと思うが、多分私は間違っていた。以下に走っているタスクのプリントアウトです:
Done, without errors.
Elapsed time
build 887ms
useminPrepare:html 22ms
concurrent:dist 8s
autoprefixer:dist 174ms
requirejs:dist 19s
jsbeautifier:dist 2s
concat:public/styles/main.css 46ms
concat:public/scripts/main.js 56ms
cssmin:public/styles/main.css 81ms
copy:dist 26ms
usemin:html 5s
usemin:css 24s
3時間以上のデバッグ後、この回答が見つかりました。ありがとうございました! – LessQuesar