2017-03-09 99 views
0

我有一个Nuxt.js项目,现在我只添加了几个组件。它完美运行,如果建立本地。我想在Heroku上测试它,但是我得到了一些与webpack相关的构建错误,其中我已经埋葬了3天。Herxt上的Nuxt.js Webpack构建错误

remote:  ERROR in ./~/babel-loader/lib?{"plugins":["transform-async-to-generator","transform-runtime"],"presets":[["es2015",{"modules":false}],"stage-2"],"cacheDirectory":false}!./~/vue-loader/lib/selector.js?type=script&index=0!./layouts/default.vue 
remote:  Module not found: Error: Can't resolve '../components/Sidebar/_Sidebar.vue' in '/tmp/build_fe4d2e874dff634cf8c7db3886460988/layouts' 
remote:  @ ./~/babel-loader/lib?{"plugins":["transform-async-to-generator","transform-runtime"],"presets":[["es2015",{"modules":false}],"stage-2"],"cacheDirectory":false}!./~/vue-loader/lib/selector.js?type=script&index=0!./layouts/default.vue 30:0-57 
remote:  @ ./layouts/default.vue 
remote:  @ ./~/babel-loader/lib?{"plugins":["transform-async-to-generator","transform-runtime"],"presets":[["es2015",{"modules":false}],"stage-2"],"cacheDirectory":false}!./~/vue-loader/lib/selector.js?type=script&index=0!./.nuxt/App.vue 
remote:  @ ./.nuxt/App.vue 
remote:  @ ./.nuxt/index.js 
remote:  @ ./.nuxt/server.js 

我也安装了新鲜的副本nuxtjs.org入门主题,但没有错误。它构建得像魅力。

这是我的package.json

{ 
     "name": "some-nuxt", 
     "version": "0.3.0", 
     "description": "nuxt-sandbox ", 
     "private": true, 
     "dependencies": { 
     "axios": "^0.15.3", 
     "nuxt": "^0.9.9", 
     "vue-touch": "^2.0.0-beta.4" 
     }, 
     "scripts": { 
     "dev": "nuxt", 
     "build": "nuxt build", 
     "start": "nuxt start", 
     "generate": "nuxt generate", 
     "lint": "eslint --ext .js,.vue --ignore-path .gitignore .", 
     "precommit": "npm run lint", 
     "heroku-postbuild": "npm run build" 
     }, 
     "devDependencies": { 
     "ava": "^0.18.2", 
     "babel-eslint": "^7.1.1", 
     "eslint": "^3.16.0", 
     "eslint-config-standard": "^6.2.1", 
     "eslint-loader": "^1.6.1", 
     "eslint-plugin-html": "^2.0.1", 
     "eslint-plugin-promise": "^3.4.2", 
     "eslint-plugin-standard": "^2.0.1", 
     "jsdom": "^9.11.0", 
     "node-sass": "^4.5.0", 
     "sass-lint": "^1.10.2", 
     "sass-loader": "^6.0.2" 
     } 
    } 

这是从我的nuxt.config.js文件中的一些的定制。

  css: [ 
      // '~assets/css/main.css', 
      { src: '~assets/scss/app.scss', lang: 'sass' } // scss instead of sass 
      ], 
      ... 
      alias: { 
      'hammerjs$': 'vue-touch/dist/hammer-ssr.js' 
      }, 
      build: { 
      /* 
      ** Run ESLINT on save 
      */ 
      vendor: ['axios', 'vue-touch'], 
      extend (config, { isClient }) { 
       if (isClient) { 
       config.module.rules.push({ 
        enforce: 'pre', 
        test: /\.(js|vue)$/, 
        loader: 'eslint-loader', 
        exclude: /(node_modules)/ 
       }) 
       } 
      } 
      }, 
      plugins: ['~plugins/vue-touch'] 
     } 

回答

0

我找到了Heroku服务器的大小写敏感的文件系统Linux与我的敏感系统相冲突的原因。当我将我的子组件重命名为大写字母时,Github没有将更改推送到回购站。

npm run dev,npm run build都没有在我的电脑中给出任何错误。但是,当Linux正在查找发生问题的文件夹的确切名称时。

这可能是一种预防措施,在一个干净的区分大小写格式的分区工作:https://coderwall.com/p/mgi8ja/case-sensitive-git-in-mac-os-x-like-a-pro

文档的标题解释了最好。 http://timnew.me/blog/2013/04/18/mac-os-x-case-insensitive-file-system-pitfall/