搜索

首页  >  问答  >  正文

javascript - webpack打包的时候故意放在static中js,发布后更换没有生效

有个vux的项目,有些JS,我故意放在static的目录里面,然后使用require来获取,该JS内容如下:

var sysNavDefine = {
    name: 'sysNavDefine',
    navList: [ {
            path: '/listView',
            name: 'listView',
            imgSrc: '../../static/images/home/email.png',
            desc: '网络通讯',
            query: {
                tableName: 'EmailDet',
                tableAlias: 'InBox',
                pageSize: 20,
                pageIndex: 1
            }
        }, {
            path: '/listView',
            name: 'listView',
            imgSrc: '../../static/images/home/wfCurrentStep.png',
            desc: '审批任务',
            query: {
                tableName: 'wfCurrentStep',
                tableAlias: '',
                pageSize: 20,
                pageIndex: 1
            }
        } 
    ]
}
export default sysNavDefine

在vue里面这样使用:

var sysNav = require("../../static/modules/sysNav.js")
        this.$data.navList = sysNav.default.navList

问题来了,放在static里面的时候,webpack打包,就是:npm run build,没有问题。在使用的过程中,我修改了这个sysNav.js,但是,不管如何清理缓存,都是旧的内容,就好像不知道哪里缓存了一样。我是希望可以通过动态修改这个文件,让我可以更新部分内容。或者说,如何让require可以每次都读取最新的内容。

世界只因有你世界只因有你2785 天前929

全部回复(3)我来回复

  • 巴扎黑

    巴扎黑2017-06-30 09:56:43

    配置 devServer 或者 webpack-dev-middleware webpack-hot-middleware

    回复
    0
  • 仅有的幸福

    仅有的幸福2017-06-30 09:56:43

    你watch了才会更新,不watch怎么会自动更新。

    回复
    0
  • ringa_lee

    ringa_lee2017-06-30 09:56:43

    是不是我说的太复杂了,其实重现这个问题很简单。

    新建一个vue的项目,在static里面放入一个js,然后,在vue里面require这个js,例如alert一下。

    npm run build,把dist里面的内容,都拷贝到web服务器,修改static里面的js的内容,你会发现,这个内容不会生效。

    好了问题来?既然只要require一个js,就会把js打包进去。为什么还会在static目录里面看到这个js??岂不是自欺欺人了吗??


    经过实际测试,发现只要require一个js,webpack就会把这个js直接打包到app.js里面,然后static里面的内容是原封不动的直接拷贝到dist目录。我在app.js里面找到了测试的代码了。


    回复
    0
  • 取消回复