Reputation: 105
Using Gitlab CI/CD to deploy my project, I encountered a problem with dependencies. Everything works fine locally, but not in pipeline.
.gitlab-ci.yml:
stages:
- build-frontend
- build-backend
image: lnkra/<...project name...>:latest
build frontend:
stage: build-frontend
only:
- master
- draft
script:
- cd frontend
- npm install
- npm run build
build backend:
stage: build-backend
only:
- master
- draft
script:
- cd backend
- ./gradlew installDist
main.js:
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import 'mdbvue/build/css/mdb.css'
import 'bootstrap-css-only/css/bootstrap.min.css'
import App from './App'
import store from './store'
import router from './router'
import Notify from 'mdbvue/src/components/pro/Advanced/Notify'
Vue.config.productionTip = false
Vue.use(Notify)
Object.defineProperty(Vue.prototype, '$bus', {
get: function () {
return this.$root.bus
}
})
/* eslint-disable no-new */
new Vue({
el: '#app',
data: {
bus: new Vue({})
},
store,
router,
components: { App },
template: '<App/>'
})
Gitlab Pipeline output for Stage "build frontend":
Running with gitlab-runner 12.3.0 (a8a019e0)
on docker-auto-scale 72989761
Using Docker executor with image lnkra/<...project name...>:latest ...
Pulling docker image lnkra/<...project name...>:latest ...
Using docker image sha256:dd41b9422753f6aa01c5b270be56eadb4997ea7f99f1c8ab2863ca413b012ab6 for lnkra/<...project name...>:latest ...
Running on runner-72989761-project-14997921-concurrent-0 via runner-72989761-srm-1572288084-e8a1b6f1...
Fetching changes with git depth set to 50...
Initialized empty Git repository in /builds/lnkr.a/<...project name...>/.git/
Created fresh repository.
From https://gitlab.com/lnkr.a/<...project name...>
* [new ref] refs/pipelines/92097195 -> refs/pipelines/92097195
* [new branch] master -> origin/master
Checking out f1eb05c0 as master...
Skipping Git submodules setup
$ cd frontend
$ npm install
> [email protected] install /builds/lnkr.a/<...project name...>/frontend/node_modules/node-sass
> node scripts/install.js
Downloading binary from https://github.com/sass/node-sass/releases/download/v4.13.0/linux-x64-72_binding.node
Download complete
Binary saved to /builds/lnkr.a/<...project name...>/frontend/node_modules/node-sass/vendor/linux-x64-72/binding.node
Caching binary to /root/.npm/node-sass/4.13.0/linux-x64-72_binding.node
> [email protected] postinstall /builds/lnkr.a/<...project name...>/frontend/node_modules/core-js
> node scripts/postinstall
> [email protected] postinstall /builds/lnkr.a/<...project name...>/frontend/node_modules/webpack/node_modules/uglifyjs-webpack-plugin
> node lib/post_install.js
> [email protected] postinstall /builds/lnkr.a/<...project name...>/frontend/node_modules/node-sass
> node scripts/build.js
Binary found at /builds/lnkr.a/<...project name...>/frontend/node_modules/node-sass/vendor/linux-x64-72/binding.node
Testing binary
Binary is fine
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
added 1455 packages from 780 contributors and audited 13434 packages in 42.428s
found 10 vulnerabilities (6 moderate, 4 high)
run `npm audit fix` to fix them, or `npm audit` for details
$ npm run build
> [email protected] build /builds/lnkr.a/<...project name...>/frontend
> node build/build.js
Hash: 69fa78c753b2a3704fcf
Version: webpack 3.12.0
Time: 46361ms
Asset Size Chunks Chunk Names
static/js/vendor.60583dda74269ed56c38.js 995 kB 0 [emitted] [big] vendor
static/js/app.2f4303511b5acdad8437.js 115 kB 1 [emitted] app
static/js/manifest.2ae2e69a05c33dfc65f8.js 857 bytes 2 [emitted] manifest
static/css/app.cf497324bb2ee125a15dac61baeb7001.css 180 kB 1 [emitted] app
static/css/app.cf497324bb2ee125a15dac61baeb7001.css.map 251 kB [emitted]
static/js/vendor.60583dda74269ed56c38.js.map 2.66 MB 0 [emitted] vendor
static/js/app.2f4303511b5acdad8437.js.map 438 kB 1 [emitted] app
static/js/manifest.2ae2e69a05c33dfc65f8.js.map 4.97 kB 2 [emitted] manifest
index.html 587 bytes [emitted]
static/<...project name...>-logo-square.png 8.13 kB [emitted]
static/<...project name...>-logo-square.svg 4.29 kB [emitted]
static/<...project name...>-logo.svg 5.46 kB [emitted]
ERROR in ./src/main.js
Module not found: Error: Can't resolve 'mdbvue/build/css/mdb.css' in '/builds/lnkr.a/<...project name...>/frontend/src'
@ ./src/main.js 4:0-34
ERROR in ./src/main.js
Module not found: Error: Can't resolve 'mdbvue/src/components/pro/Advanced/Notify' in '/builds/lnkr.a/<...project name...>/frontend/src'
@ ./src/main.js 9:0-63
Build failed with errors.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: `node build/build.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2019-10-28T18_44_36_916Z-debug.log
ERROR: Job failed: exit code 1
UPD! package.json:
{
"name": "<...project name...>",
"version": "0.3.1",
"description": "",
"author": "Aleksandr Bogdanov <[email protected]>",
"private": true,
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev",
"lint": "eslint --ext .js,.vue src",
"build": "node build/build.js"
},
"dependencies": {
"ajv": "^6.10.2",
"ajv-keywords": "^3.4.0",
"axios": "^0.18.1",
"mdbvue": "git+https://oauth2:<...license token...>.mdbootstrap.com/mdb/vue/vu-pro.git",
"node-sass": "^4.11.0",
"sass-loader": "^7.3.1",
"vue": "^2.5.2",
"vue-router": "^3.1.3",
"vuex": "^3.1.0"
},
"devDependencies": {
"autoprefixer": "^7.1.2",
"babel-core": "^6.22.1",
"babel-eslint": "^8.2.1",
"babel-helper-vue-jsx-merge-props": "^2.0.3",
"babel-loader": "^7.1.1",
"babel-plugin-syntax-jsx": "^6.18.0",
"babel-plugin-transform-runtime": "^6.22.0",
"babel-plugin-transform-vue-jsx": "^3.5.0",
"babel-preset-env": "^1.3.2",
"babel-preset-stage-2": "^6.22.0",
"chalk": "^2.0.1",
"copy-webpack-plugin": "^4.0.1",
"css-loader": "^0.28.0",
"eslint": "^4.15.0",
"eslint-config-standard": "^10.2.1",
"eslint-friendly-formatter": "^3.0.0",
"eslint-loader": "^1.7.1",
"eslint-plugin-import": "^2.18.2",
"eslint-plugin-node": "^5.2.0",
"eslint-plugin-promise": "^3.4.0",
"eslint-plugin-standard": "^3.0.1",
"eslint-plugin-vue": "^4.0.0",
"extract-text-webpack-plugin": "^3.0.0",
"file-loader": "^1.1.4",
"friendly-errors-webpack-plugin": "^1.6.1",
"html-webpack-plugin": "^2.30.1",
"node-notifier": "^5.4.3",
"optimize-css-assets-webpack-plugin": "^3.2.1",
"ora": "^1.2.0",
"portfinder": "^1.0.25",
"postcss-import": "^11.0.0",
"postcss-loader": "^2.0.8",
"postcss-url": "^7.2.1",
"rimraf": "^2.7.1",
"semver": "^5.7.1",
"shelljs": "^0.7.6",
"uglifyjs-webpack-plugin": "^1.1.1",
"url-loader": "^0.5.8",
"vue-loader": "^13.3.0",
"vue-style-loader": "^3.0.1",
"vue-template-compiler": "^2.5.2",
"webpack": "^3.6.0",
"webpack-bundle-analyzer": "^2.9.0",
"webpack-dev-server": "^2.9.1",
"webpack-merge": "^4.2.2"
},
"engines": {
"node": ">= 6.0.0",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
}
So. It is a question. Why npm can not find installed node modules with such import addresses?
Thank you.
Upvotes: 0
Views: 2109
Reputation: 26
Which MDB Vue version are you using? In MDB Vue 6.0.0 (the most recent version) main.js imports in main.js have changed to:
import 'mdbvue/lib/css/mdb.min.css';
import Notify from 'mdbvue/lib/components/Notify'
If your scripts installed dependencies from the gitlab master branch directly, it is possible that the version differs and those files are no longer there. You can try linking mdbvue dependency to .tgz file to make sure it stays the same.
"mdbvue": "mdbvue-[YOUR_VERSION].tgz"
Upvotes: 1