Laravel Mix在Mix V4 +中始终未定义

时间:2019-01-04 00:44:25

标签: laravel npm laravel-5.5 yarnpkg laravel-mix

升级到Mix v4.x后,对linkList = ['https://www.link1.com', 'https://www.link2.com']; adsList = [] let ads = async () => { const req = axios(apiUrl + linkList) const res = await Promise.resolve(req) adLinks.push(res.data.shortenedUrl) console.log(adsList) // Here, it shows a updated array everytime a promise is resolved } ads() console.log(adsList) // Returns [], because the promises aren't resolved by the time it runs 的任何调用都会导致不确定混合。我每次运行都会看到这样的错误:

adsList

我正在使用Laravel 5.5运行它。我升级了npm run,以使其与Mix v4一起使用的laravel存储库中的版本相匹配。

这是我的> npm run development > @ development /project > cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js /project/node_modules/webpack-cli/bin/cli.js:235 throw err; ^ TypeError: Cannot read property 'js' of undefined at Object.<anonymous> (/project/webpack.mix.js:15:5) at Module._compile (/project/node_modules/v8-compile-cache/v8-compile-cache.js:178:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:732:10) at Module.load (internal/modules/cjs/loader.js:620:32) at tryModuleLoad (internal/modules/cjs/loader.js:560:12) at Function.Module._load (internal/modules/cjs/loader.js:552:3) at Module.require (internal/modules/cjs/loader.js:657:17) at require (/project/node_modules/v8-compile-cache/v8-compile-cache.js:159:20) at Object.<anonymous> (/project/node_modules/laravel-mix/setup/webpack.config.js:12:1) at Module._compile (/project/node_modules/v8-compile-cache/v8-compile-cache.js:178:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:732:10) at Module.load (internal/modules/cjs/loader.js:620:32) at tryModuleLoad (internal/modules/cjs/loader.js:560:12) at Function.Module._load (internal/modules/cjs/loader.js:552:3) at Module.require (internal/modules/cjs/loader.js:657:17) at require (/project/node_modules/v8-compile-cache/v8-compile-cache.js:159:20) at WEBPACK_OPTIONS (/project/node_modules/webpack-cli/bin/convert-argv.js:113:13) at requireConfig (/project/node_modules/webpack-cli/bin/convert-argv.js:115:6) at /project/node_modules/webpack-cli/bin/convert-argv.js:122:17 at Array.forEach (<anonymous>) at module.exports (/project/node_modules/webpack-cli/bin/convert-argv.js:120:15) at yargs.parse (/project/node_modules/webpack-cli/bin/cli.js:232:39) at Object.parse (/project/node_modules/yargs/yargs.js:567:18) at /project/node_modules/webpack-cli/bin/cli.js:210:8 at Object.<anonymous> (/project/node_modules/webpack-cli/bin/cli.js:500:3) at Module._compile (internal/modules/cjs/loader.js:721:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:732:10) at Module.load (internal/modules/cjs/loader.js:620:32) at tryModuleLoad (internal/modules/cjs/loader.js:560:12) at Function.Module._load (internal/modules/cjs/loader.js:552:3) at Module.require (internal/modules/cjs/loader.js:657:17) at require (internal/modules/cjs/helpers.js:22:18) at Object.<anonymous> (/project/node_modules/webpack/bin/webpack.js:155:2) at Module._compile (internal/modules/cjs/loader.js:721:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:732:10) at Module.load (internal/modules/cjs/loader.js:620:32) npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! @ development: `cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the @ development script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

package.json

我的package.json

{
  "private": true,
  "scripts": {
    "dev": "npm run development",
    "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch": "npm run development -- --watch",
    "watch-poll": "npm run watch -- --watch-poll",
    "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
    "prod": "npm run production",
    "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
  },
  "devDependencies": {
    "accounting": "^0.4.1",
    "axios": "^0.18.0",
    "bootstrap": "^4.1.3",
    "bootstrap-sass": "^3.4.0",
    "cross-env": "^5.2.0",
    "fancybox": "^3.0.1",
    "jquery": "^3.3.1",
    "jquery-slimscroll": "^1.3.8",
    "ladda": "^2.0.1",
    "laravel-mix": "^4.0.13",
    "locutus": "^2.0.10",
    "metismenu": "^2.7.9",
    "moment": "^2.23.0",
    "vue": "^2.5.21",
    "webpack": "^4.28.3",
    "webpack-cli": "^3.2.0"
  },
  "dependencies": {
    "ajv": "^6.6.2",
    "bootstrap-vue": "^2.0.0-rc.11",
    "extract-text-webpack-plugin": "^4.0.0-beta.0",
    "imagemin": "^6.0.0",
    "jsonexport": "^2.4.1",
    "laravel-echo": "^1.5.2",
    "lodash": "^4.17.11",
    "node-sass": "^4.11.0",
    "pusher-js": "^4.3.1",
    "sweetalert2": "^7.32.4",
    "vue-api-query": "^1.2.0",
    "vue-events": "^3.1.0",
    "vue-multiselect": "^2.1.3",
    "vue-sweetalert2": "^1.6.3",
    "vuetable-2": "^2.0.0-beta.4",
    "vuex": "^3.0.1"
  }
}

我尝试再次删除webpack.mix.jsconst { mix } = require('laravel-mix'); mix.js('resources/assets/js/app.js', 'public/js') .sass('resources/assets/sass/app.scss', 'public/css') .version() .sourceMaps(); ,但这不能解决问题。

如果我降级到v3,除了编译一些SASS的问题之外没有其他问题。

  • npm v6.4.1
  • 节点v11.5.0
  • 纱线v1.12.3

2 个答案:

答案 0 :(得分:8)

没有看到您的webpack.mix.js文件,很难说出问题所在。我克隆了Laravel 5.5分支,并升级到^4.0.13的版本laravel-mix,并成功运行了yarn devyarn prod,尽管我使用的是npm和node的最新版本。 / p>

  • NPM 6.5.0-next.0
  • 节点11.6.0
  • 纱线1.12.3

这里是GitHub repo演示对象。

enter image description here

更新

// TypeError: Cannot read property 'js' of undefined
const { mix } = require('laravel-mix');

// works
const mix = require('laravel-mix');

答案 1 :(得分:0)

当我这样更改webpack.mix.js文件时:

// TypeError:无法读取未定义的属性'js'

const {mix} = require('laravel-mix');

//工作

const mix = require('laravel-mix');

然后它对我有用!