ExtJS - creating a package with widgets panels, etc

192 Views Asked by At

I am creating a package in ExtJS and I need it to contain panels and other elements, this is my package.json:

{
/\*\*
\* The name of the package.
\*/
"name": "MyPackage4",

    "sencha": {
        /**
         * Alternate names for this package.
         *
         *    "alternateName": [],
         */
    
         /**
          * The namespace of this package.
          *
          * As a general rule, all classes that belong to this package should be under this namespace
          * if multiple namespaces are part of this package, set this to "".
          */
         "namespace": "MyPackage4",
    
        /**
         * The package type.
         *
         * Sencha Cmd understands the following types of packages:
         *  - code : An arbitrary package of code for use by applications or other packages.
         *  - theme : A package to be used as an application’s theme.
         *  - locale : A package containing localization strings or locale-specific code.
         *  - template : A package containing one or more templates.
         */
        "type": "code",
    
        /**
         * The toolkit used by this theme (only for "theme" package type).
         *
         * Themes can specify the toolkit they apply to ("classic" or "modern").
         *
         *    "toolkit": "classic",
         */
        "toolkit": "",
    
         /**
          * The author of the package.
          *
          * Required only if you are distributing this package through a Sencha Cmd repository,
          * in which case it should match the name you assign to your local package repository.
          */
        "creator": "anonymous",
    
        /**
         * A summarized description of this package.
         */
        "summary": "Short summary",
    
        /**
         * A detailed description of this package.
         */
        "detailedDescription": "Long description of package",
    
        /**
         * The package version.
         *
         * Typically, changes to the package should come along with changes to the version.
         * This number should be in this format: d+(.d+)*
         */
        "version": "1.0.0",
    
        /**
         * The version that users can transparently update from without requiring code changes.
         *
         * In addition the version property, packages can also indicate the degree to which
         * they are backward compatible using the compatVersion property.
         */
        "compatVersion": "1.0.0",
    
        /**
         * Spec. version of this package.json file.
         * This is set automatically by Sencha Cmd when first generating this file
         */
        "format": "1",
    
        /**
         * Additional resources used during theme slicing operations
         */
        "slicer": {
            "js": [
                {
                    "path": "${package.dir}/sass/example/custom.js",
                    "isWidgetManifest": true
                }
            ]
        },
    
        /**
         * Controls the output directory.
         */
        "output": "${package.dir}/build",
    
        /**
         * Indicates whether this is a locally developed package or downloaded form a repository.
         * Defaults to true on newly generated packages, should not be changed.
         */
        "local": true,
    
        /**
         * The theme (package) this package will use (e.g., "ext-theme-neptune", etc.).
         * This is only needed if the built package will be used by a non-Cmd application.
         *
         *     "theme": "ext-theme-classic",
         */
    
        /**
         * Sass configuration properties.
         */
        "sass" : {
            /**
             * The namespace to which this package's SASS corresponds. The default value of
             * "MyPackage4" means that the files in ./sass/src (and ./sass/var) match classes in
             * the MyPackage4" root namespace. In other words, "MyPackage4.panel.Panel" maps to
             * ./sass/src/panel/Panel.scss.
             *
             * To style classes from any namespace, set this to blank. If this is blank,
             * then to style "MyPackage4.panel.Panel" you would put SASS in
             * ./sass/src/MyPackage4/panel/Panel.scss.
             */
            "namespace": "MyPackage4",
    
            /**
             * Comma-separated list of files or folders containing extra Sass. These
             * files are automatically included in the Sass compilation. By default this
             * is just "etc/all.scss" to allow import directives to control the order
             * other files are included.
             *
             * All "etc" files are included at the top of the Sass compilation in their
             * dependency order:
             *
             *      +-------+---------+
             *      |       | base    |
             *      | theme +---------+
             *      |       | derived |
             *      +-------+---------+
             *      | packages        |  (in package dependency order)
             *      +-----------------+
             *      | application     |
             *      +-----------------+
             */
            "etc": [
                "${package.dir}/sass/etc/all.scss"
             ],
    
            /**
             * Comma-separated list of folders containing Sass variable definitions
             * files. These file can also define Sass mixins for use by components.
             *
             * All "var" files are included after "etc" files in the Sass compilation in
             * dependency order:
             *
             *      +-------+---------+
             *      |       | base    |
             *      | theme +---------+
             *      |       | derived |
             *      +-------+---------+
             *      | packages        |  (in package dependency order)
             *      +-----------------+
             *      | application     |
             *      +-----------------+
             *
             * The "sass/var/all.scss" file is always included at the start of the var
             * block before any files associated with JavaScript classes.
             */
            "var": [
                "${package.dir}/sass/var"
            ],
    
            /**
             * Comma-separated list of folders containing Sass rule files.
             *
             * All "src" files are included after "var" files in the Sass compilation in
             * dependency order (the same order as "etc"):
             *
             *      +-------+---------+
             *      |       | base    |
             *      | theme +---------+
             *      |       | derived |
             *      +-------+---------+
             *      | packages        |  (in package dependency order)
             *      +-----------------+
             *      | application     |
             *      +-----------------+
             */
            "src": [
                "${package.dir}/sass/src"
            ]
        },
    
        /**
         * This is the comma-separated list of folders where classes reside. These
         * classes must be explicitly required to be included in the build.
         */
        "classpath": [
            "${package.dir}/src"
        ],
    
        /**
         * Comma-separated string with the paths of directories or files to search. Any classes
         * declared in these locations will be automatically required and included in the build.
         * If any file defines an Ext JS override (using Ext.define with an "override" property),
         * that override will in fact only be included in the build if the target class specified
         * in the "override" property is also included.
         */
        "overrides": [
            "${package.dir}/overrides"
        ],
    
        "example": {
            /**
             * One or more folders that contain example applications for this package.
             */
            "path": [
                "${package.dir}/examples"
            ]
    
            /**
             * You can list apps specifically.
             *
             *      "apps": [
             *          "demo1",
             *          "demo2"
             *      ]
             *
             * By default, all subfolders in the path are considered example applications.
             */
        },
    
        /**
         * The framework this package will use (i.e., "ext" or "touch").
         * This is only needed if the built package will be used by a non-Cmd application.
         *
         *     "framework": "ext",
         */
         "framework": "ext",
    
         /*"meta": {
          "toolkit": "classic"
         },*/
    
         /*"builds": {
            "classic": {
                "toolkit": "classic"
            },
    
            "modern": {
                "toolkit": "classic"
            }
         },*/
         "buildOptions": {
            "classic": true
         },
    
        /**
         * Packages can require other packages in the same way that applications can require
         * packages.
         *
         * Can be specified as an array of package names or configuration objects.
         *
         *      "requires": [
         *          "foo",
         *          "[email protected]",
         *          {
         *              "name": "baz"
         *              "version": "1.5"
         *          }
         *      ]
         *
         * Can also be specified as an object:
         *
         *      "requires": {
         *          "foo": "2.2",
         *          "bar": {
         *              "minVersion": "1.1",
         *              "version": "2.0"
         *          }
         *      }
         */
        /*"requires": [
            
        ]*/
        /*"requires": {
            "ext": {
                      "minVersion": "6.0.0.640",
                      "version": "6.5.0.180"
                  }    
        }*/
        "requires": [
            "ext"
            /*"Ext.panel.Panel@^6.0.0.640"*/
        ]
        /*"subpkgs": [
            "classic/classic",
            "modern/modern",
            "packages/charts",
            "packages/amf",
            "packages/soap",
            "packages/ux",
            "packages/google",
            "packages/legacy",
            "packages/font-awesome",
            "packages/font-pictos",
            "packages/font-ext"
          ]*/
    }

}

But when I run the command: sencha package build

I get the following error:

[ERR] Failed to resolve dependency Ext.panel.Panel for file MyPackage4.MyPanelMuestra [ERR] [ERR] BUILD FAILED [ERR] com.sencha.exceptions.ExNotFound: Unknown definition for dependency : Ext.panel.Panel [ERR] at com.sencha.command.Sencha.mai [ERR] n(Sencha.java:146) [ERR] [ERR] Total time: 1 second

I have tried to add the toolkit classic but I didn't know the right way to do it because it gives me other errors.

0

There are 0 best solutions below