angelnikolov / ts-cacheable

Observable/Promise Cache Decorator
https://npmjs.com/package/ts-cacheable
ISC License
340 stars 42 forks source link

common.js 404 #47

Closed ToniSoriano closed 4 years ago

ToniSoriano commented 5 years ago

After upgrading from 1.0.9 to the following, the application gives an error message. I'm using systemjs.config.js in my project to configure reference.

common.js 404.

Please help me.

angelnikolov commented 5 years ago

Hm, can you provide an absolutely minimal reproduction of the issue? I a current out on a Holiday but will check it out when I come back :)

ToniSoriano commented 5 years ago

Until version 1.0.9 (included) everything works correctly, it is the last version that works for me.

In the systemjs.config.js I have the following reference: map: { 'ngx-cacheable': 'npm: ngx-cacheable/dist' }, packages: { 'ngx-cacheable': {                  main: 'index.js', defaultExtension: 'js'              } }

In version 1.0.9 the "dist" folder has only one level. As of version 1.1.0 it already has more levels "dist", "dist/commons" and "dist/specs". As of version 1.2.0, the "dist" level disappears but the commons and specs folder exists.

I have tried with all versions and the error is always the same "GET https://localhost:44391/node_modules/ngx-cacheable/dist/common.js 404".

Take this opportunity to congratulate you on your library, it works great.

Enjoy holidays.

angelnikolov commented 5 years ago

Right, before I was wrongly publishing out of the root folder which actually deployed the source files too. So now, the lib is published out of dist/ itself. Can you try changing the config in your system file to:

map: {
'ngx-cacheable': 'npm: ngx-cacheable'
},

@ToniSoriano

ToniSoriano commented 5 years ago

I had already tried this, and with that configuration I still have the same error. I have also tried to put the path in the tsconfig.js file. But, the result is the same. "paths": { "jszip": [ "node_modules/jszip/dist/jszip.min.js" ], "ngx-cacheable": [ "node_modules/ngx-cacheable/index.js" ] }

Capture

angelnikolov commented 5 years ago

@ToniSoriano Thanks for the screenshot. Unfortunately I can't reproduce this right now so if you could please create a stackblitz with this being reproduced, it will help immensely.

ToniSoriano commented 4 years ago

Hi. I have found an alternative way to solve the problem.

It is about creating a common.js file in the root folder with the same code of the /common/index.js folder.

But it is not a good solution.

I write this in case it helps you to find the problem

Thanks.

angelnikolov commented 4 years ago

@ToniSoriano Can you test your issue with 1.4.0-beta.11. It is a version of ngx-cacheable which changes the module structure output to esm, cjs and es2015 modules.

ToniSoriano commented 4 years ago

Thanks @angelnikolov. I try with 1.4.0-beta.12 but in cjs have same problem, and the others protocols have a error TS¿?. I will keep trying.

ToniSoriano commented 4 years ago

Hi again.

I'm solve this issue. The problem was in the definition of the systemjs.config.

Need define new entry in package for define path to common.js. I'm try this in version 1.4 and work fine.

Same this:

    map: {
        // our app is within the app folder
        app: 'app',

        'ngx-cacheable': 'npm:ngx-cacheable/cjs',
    },
    // packages tells the System loader how to load when no filename and/or no extension
    packages: {
        app: {
            defaultExtension: 'js'
        },
        'ngx-cacheable': {
            main: 'index.js', defaultExtension: 'js'
        },
        **'ngx-cacheable/common': {
            main: 'index.js', defaultExtension: 'js'
        }**
    }

Thanks for your attention. Congratulations!!

angelnikolov commented 4 years ago

@ToniSoriano Glad you solved it :))