で使用しようとしていますpikaday
がmoment
、どういうわけか機能させることができません。
次のように使用しようとしてaurelia
custom-attribute
います。
import "moment";
import "pikaday";
...
self.picker = new Pikaday({
field: $(this.element)[0]
, format: "DD.MM.YYYY"
, onSelect: (date) => {
console.log(self.picker.getMoment().format('Do MMMM YYYY')); //getMoment() is always null.
}
});
moment
の前にインポートしたにもかかわらずpikaday
、機能していません (他の SO の質問と GitHub の問題でアドバイスされているように)、getMoment() は常に null です。日付でさえ、デフォルトでは に従ってフォーマットされていませんformat
。
また、コードの最初のブロックで適切に設定されていないため、hasMoment
常にfalse
にあることもわかりました( as can be ssen below のソースで):pikaday.js
pikaday
(function (root, factory)
{
'use strict';
var moment;
if (typeof exports === 'object') {
// CommonJS module
// Load moment.js as an optional dependency
try { moment = require('moment'); } catch (e) {}
module.exports = factory(moment);
} else if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(function (req)
{
// Load moment.js as an optional dependency
var id = 'moment';
try { moment = req(id); } catch (e) {}
return factory(moment);
});
} else {
root.Pikaday = factory(root.moment);
}
}(this, function (moment)
{
'use strict';
/**
* feature detection and helper functions
*/
var hasMoment = typeof moment === 'function', // this is always false as it can't be set in the above block.
.....
moment
そのため、間違った方法でインポートしている可能性があると思いました。誰でもこれについて私を助けてもらえますか?
追加の詳細: 私のプロジェクト設定は次のとおりです。
tsconfig.json
{
"compilerOptions": {
"target": "es6",
"isolatedModules": false,
"jsx": "react",
"declaration": false,
"noImplicitAny": false,
"removeComments": true,
"noLib": false,
"preserveConstEnums": true,
"suppressImplicitAnyIndexErrors": false,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"experimentalAsyncFunctions": true,
"allowSyntheticDefaultImports": false
},
"filesGlob": [
"**/*.ts",
"**/*.tsx",
"!node_modules/**"
],
"files": [ ],
"compileOnSave": false,
"buildOnSave": false,
"atom": {
"rewriteTsconfig": false
}
}
私も使用していsystem.js
ます:
System.config({
baseURL: "/",
defaultJSExtensions: true,
transpiler: "babel",
babelOptions: {
"optional": [
"runtime",
"optimisation.modules.system"
]
},
paths: {
"*": "dist/*",
"github:*": "jspm_packages/github/*",
"npm:*": "jspm_packages/npm/*"
},
map: {
...
}
})
回避策: 内部main
(aurelia 構成):
import moment from "moment";
...
// Register moment on global scope.
window["moment"] = moment;
...
そして、はい、私はそれが醜いことを知っていますが、仕事をします:)