我正在 Laravel 5.4 和 Vue.js 中构建一个应用程序。由于我已经在另一个项目中创建了大部分组件,因此我已将该项目作为 git 子模块导入到我的 Laravel 应用程序中。 问题是当我运行命令时
npm run dev
我这个错误:
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 2
npm ERR!
npm ERR! Failed at the @ development script '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! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the package,
npm ERR! not with npm itself.
经过一些调试,我发现问题是我作为 git 子模块导入的项目(包含我的组件)有一些隐藏的配置文件,如 .env、.babelrc ,它们会触发该错误。如果我删除它们,编译就会正常,我可以使用我的组件。
问题是我无法从项目中删除这些文件,理想的方法是忽略 Laravel webpack 配置中的此类文件:
mix.js('resources/assets/js/app.js', 'public/js')
.sass('resources/assets/sass/app.scss', 'public/css');
我怎样才能实现这个目标?更重要的是,Webpack 不应该只编译需要的内容吗? 例如,如果我从库中导入一个组件,我希望 webpack 只编译该组件,而不是其他所有组件......
最佳答案
我通过这样做解决了这个问题:
mix.copy('node_modules/foo/bar.css', 'public/css/bar.css');
这样,在捆绑 js 文件之前,我将所有组件从库移动到 laravel 项目中的 asset/js/components 文件夹,并且编译工作正常!
关于javascript - Laravel 项目 : force webpack to ignore some files,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44701374/