V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
phx13ye
V2EX  ›  webpack

Webpack 怎么改 html 中的 js 路径?

  •  
  •   phx13ye · 2015-06-08 16:42:37 +08:00 · 8513 次点击
    这是一个创建于 3216 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在HTML文件中如果有
    ```html
    <script src="./src/js/A.js"></script>
    <script src="./src/js/B.js"></script>
    ```
    wepack之后,A,B的源码合并并压缩为bundle.js
    有什么方法可以改为
    ```html
    <script src="./build/js/bundle.js"></script>
    ```
    11 条回复    2015-06-27 16:43:10 +08:00
    leojoy710
        1
    leojoy710  
       2015-06-08 17:23:33 +08:00
    开发阶段用webpack-dev-server实时打包 就不用改来改去了...
    crazyxin1988
        2
    crazyxin1988  
       2015-06-08 17:26:25 +08:00
    可以自己写个webpack插件 自动替换
    phx13ye
        3
    phx13ye  
    OP
       2015-06-08 17:46:17 +08:00
    @leojoy710 不太懂什么意思,
    业余前端,已经被js这些项目管理工具搞得有点晕了
    用webpack-dev-server这些路径就不需要手工管理了吗,还是说
    一开始就指定好bundle.js路径,其余按commonjs的风格require进来就好了
    IamJ
        4
    IamJ  
       2015-06-08 20:31:07 +08:00
    一开始就是 bundle.js
    Gonster
        5
    Gonster  
       2015-06-08 20:46:42 +08:00
    一般这些工具都带watch模式,源文件更改自动重新编译
    loooooost
        6
    loooooost  
       2015-06-08 21:10:07 +08:00
    直接用bundle.js
    在webpack配置的devtool中加一个sourcemap来调试
    phx13ye
        7
    phx13ye  
    OP
       2015-06-08 22:23:07 +08:00
    @loooooost @IamJ 请教一下
    你好,目前使用react+flux
    我不想好多组件都写一句require ‘react’,所以上面那个A是react.js,B是一个main.js
    如果直接用bundle,是不是webpack自己就能处理好,不会多次将A require进来吗?

    另外请问前端开发中有没有约定俗成的目录结构?webpack对于开发和生产环境一般是怎么配置的?
    Gonster
        8
    Gonster  
       2015-06-08 22:36:07 +08:00   ❤️ 1
    loooooost
        9
    loooooost  
       2015-06-08 22:45:04 +08:00   ❤️ 1
    @phx13ye
    楼上用的commonsChunk是一个方式
    也可以使用webpack配置中的externals

    更多的可以参考一下repo https://github.com/kriasoft/react-starter-kit
    yakczh
        10
    yakczh  
       2015-06-09 10:37:14 +08:00
    @phx13ye jsx 和 require(‘xxx’) 的代码必须一起打包成bundle.js吗, 打包以后的bundle.js差不多接近2m了 我想 require('xxx') 和actions store打包成bundle.js jsx的component在页面用script引用

    比如<script src="bundle.js" ></script>
    <script type='text/jsx' >

    ...
    componentDidMount: function() {
    NodeStore.addChangeListener(this.onChange);
    },

    ...
    </script>
    但是提示 NodeStore 找不到
    cloudcome
        11
    cloudcome  
       2015-06-27 16:43:10 +08:00
    ```
    <script src="./src/js/A.js"></script>
    <script src="./src/js/B.js"></script>
    ```

    这种情况,使用 [coolie](http://coolie.ydr.me/) 非常容易实现。


    ```
    <!--coolie-->
    <script src="./src/js/A.js"></script>
    <script src="./src/js/B.js"></script>
    <!--/coolie-->
    ```

    使用
    ```
    coolie build
    ```
    构建之后

    =>

    ```
    <script src="/abcdef123456.js"></script>
    ```
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2713 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 15:43 · PVG 23:43 · LAX 08:43 · JFK 11:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.