Nuxt.js npm run build 导致一些 JS 文件找不到

Posted

技术标签:

【中文标题】Nuxt.js npm run build 导致一些 JS 文件找不到【英文标题】:Nuxt.js npm run build results in some JS files being not found 【发布时间】:2020-04-05 03:14:44 【问题描述】:

我有一个 Nuxt.js ^2.10.2 应用程序。

当我执行npm run dev 时,项目构建完美。

当我做npm run build 然后npm run start。一些 JS 文件出现 404 错误。

ERROR

Request URL: http://localhost:3000/_nuxt/vendors.pages/account.pages/ca.pages/cart.pages/category/_id/
index.pages/checkout/_step/index.pages/.f705ad4d.1-0-128.js
Request Method: GET
Status Code: 404 Not Found
Remote Address: 127.0.0.1:3000
Referrer Policy: no-referrer-when-downgrade

该文件存在于我的项目中 dist/_nuxt/vendor.pages/...... 中,文件名正确为 .f705ad4d.1-0-128.js

我的nuxt.config.js

build: ,
    filenames: 
        app: '[name].' + version + '.js',
        chunk: '[name].' + version + '.js',
        vendor: '[name].' + version + '.js',
        manifest: '[name].' + version + '.js',
    ,

我做错了什么?由于其他文件正常加载。

【问题讨论】:

【参考方案1】:

找到了答案。以. 开头的文件不起作用。虽然不知道如何解决它

临时修复:

在我的nuxt.config.js 我添加了

build: 
 filenames: 
     app: ( isDev ) => isDev ? '[name].js' : '[chunkhash].js',
     chunk: ( isDev ) => isDev ? '[name].js' : '[chunkhash].js',
     css: ( isDev ) => isDev ? '[name].css' : '[contenthash].css',
     img: ( isDev ) => isDev ? '[path][name].[ext]' : 'img/[hash:7].[ext]',
     font: ( isDev ) => isDev ? '[path][name].[ext]' : 'fonts/[hash:7].[ext]',
     video: ( isDev ) => isDev ? '[path][name].[ext]' : 'videos/[hash:7].[ext]'
   

参考: https://nuxtjs.org/api/configuration-build/#filenames

或者这样也可以

build: 
     filenames: 
         chunk: ( isDev ) => isDev ? '[name].js' : '[chunkhash].js'
     

【讨论】:

是否必须以 . ?你能浏览到路径吗? 基本上,如果我更改文件名,它就可以工作。不知道为什么这个文件没有名字。需要调查。 我遇到了npm run dev 的问题,但生产版本很好。设置块名称后,一切正常。 @Garine 你刚刚为我们节省了几天的时间。非常感谢。

以上是关于Nuxt.js npm run build 导致一些 JS 文件找不到的主要内容,如果未能解决你的问题,请参考以下文章

21.Vue---npm run build 项目打包文件过大(体积优化)

npm run build

npm run build打包遇到的问题

npm run build打包遇到的问题

Nodejs:npm run build之后,distindex.html页面在火狐中可以正常显示登录页面并登录成功,在Chrome中可以正常显示登录页面,登录失败

运行“npm run build”时,我收到一条错误消息“无法识别‘CI’”