-
-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Vue-CLI Production Error #67
Comments
Something is wrong in your config, is not working when you're doing the minification, I'll need a sandobx project to test |
@CKGrafico Ok, thanks. Right now I'm on a short holiday. I'll get back to it next week and might create a sandbox for yout to test. |
Hi again ! I tried to recreate the problem starting from a clean project but it worked fine. I'm sure there's a problem with my project, but unfortunately I can't make a sandbox with it. I can report back some progress though. After carefully checking my tsconfig.json and refactoring a few classes I got to a point where I'm absolutely sure that there is a problem with bindings when running in production mode that does not happen on dev. For example, there's a Vuex action that gets an instance from the container like this: login() {
const interactor = container.get<UseCaseInteractor>(cid.Login)
interactor.execute()
} Which results in the following error: In the part that I inject all dependencies I have this: export function containerBuilder(): void {
container.addSingleton<UseCaseInteractor>(Login);
} This works fine on development mode but not when I build the project. I'm using vue cli. On development mode I use |
That means you're minifiying the code without:
these options are only to don't have |
@CKGrafico Ok, so I changed the webpack config inside my configureWebpack: (config) => {
config.optimization = {
minimize: false, // <--- changed this to false
minimizer: [
new TerserPlugin({
terserOptions: {
keep_classnames: true,
keep_fnames: true,
},
}),
],
};
}, Setting Edit: optimization: {
minimize: true,
minimizer: [
{
options: {
test: /\.m?js(\?.*)?$/i,
chunkFilter: () => true,
warningsFilter: () => true,
extractComments: true,
sourceMap: undefined,
cache: true,
cacheKeys: defaultCacheKeys => defaultCacheKeys,
parallel: true,
include: undefined,
exclude: undefined,
minify: undefined,
terserOptions: {
keep_classnames: true,
keep_fnames: true
}
}
}
]
}, Printing the options on build step also shows correct value for |
No idea, never happened to me, if you create a project form scratch is also happening? if you use another minimizer instead Terser is also happening? |
I created a project from scratch and worked totally fine. I also tried to match the dependencies from the working and not working projects but no luck. I guess I will have to not use minimizer or try with another instead of Terser. |
Hello, I think I always ask stuff that are not really a bug with the library, but I don't know where to ask. So I apologize if this is too dumb.
I'm trying to build a vue app for production. The documentation says that I have to configure Terser plugin so I did. Put this inside vue.config.js
But I still get a blank page after building and the following error:
Note: Before I configured TerserPlugin the error was a bit different. It said
TypeError: e is undefined
Note2: It works completely fine in development mode
The text was updated successfully, but these errors were encountered: