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

现在有能够完全脱离 node.js 和 npm 的跨平台前端开发的解决方案吗?

  •  
  •   XanderChen · 2020-05-07 00:01:28 +08:00 · 9612 次点击
    这是一个创建于 1660 天前的主题,其中的信息可能已经有所发展或是发生改变。

    感觉处处都是 npm 。

    啥玩意儿都得 npm install 一下。

    有没有能够完全脱离 npm 和 nodejs 的前端开发方案?

    49 条回复    2020-07-28 09:11:30 +08:00
    airyland
        1
    airyland  
       2020-05-07 00:07:43 +08:00
    你可以用原生 js 或者 jQuery 配合手动刷新页面的方式,也就是回到古老的刀耕火种的方式。
    nerocc
        2
    nerocc  
       2020-05-07 03:19:12 +08:00 via Android
    Blazor + nuget
    ochatokori
        3
    ochatokori  
       2020-05-07 03:37:29 +08:00 via Android
    也不一定脱离了就只能用原生或者 jq,有不少库都可以用 script 标签引入。

    不过有什么不得不脱离 nodejs 的理由吗,这不是给自己找麻烦嘛
    lichdkimba
        4
    lichdkimba  
       2020-05-07 05:17:06 +08:00   ❤️ 1
    vue 不是可以<script>引用的吗
    hoyixi
        5
    hoyixi  
       2020-05-07 07:05:18 +08:00
    很难摆脱,因为很多库都是这么发布和管理的,除非代码你都自己写
    teawithlife
        6
    teawithlife  
       2020-05-07 07:20:29 +08:00
    可以用 yarn 啊[手动狗头]
    blless
        7
    blless  
       2020-05-07 07:23:45 +08:00 via Android
    vugu🌝
    WildCat
        8
    WildCat  
       2020-05-07 07:52:51 +08:00
    .net
    rust
    WildCat
        9
    WildCat  
       2020-05-07 08:11:26 +08:00
    JB18CM
        10
    JB18CM  
       2020-05-07 08:29:58 +08:00
    node.js 真的是太笨重了, 哪怕是一个小工具都格外赠送一个浏览器给你.
    nannanziyu
        11
    nannanziyu  
       2020-05-07 08:31:48 +08:00 via Android
    @greatgodwei 这是没分清 electron 和 nodejs ?
    zhw2590582
        12
    zhw2590582  
       2020-05-07 08:35:26 +08:00
    这个时候 deno 就彰显优势了
    JB18CM
        13
    JB18CM  
       2020-05-07 08:39:26 +08:00
    @nannanziyu 看错了,还以为楼主说的是跨平台 UI 了.
    artyhacker
        14
    artyhacker  
       2020-05-07 08:51:10 +08:00   ❤️ 6
    很多新手就是这样,总觉得目前更高效的工具都是无用和麻烦的,只有从最原始的方式逐步过渡过来才能明白这些工具的意义.
    Mutoo
        15
    Mutoo  
       2020-05-07 08:54:24 +08:00
    webpack 之类的模块打包工具还不成熟的时候,twitter 推出了一个叫 bower 的工具,可以把依赖下载到本地。然后自己 <script> 到网页上,或者用 browserify 打包。
    不过后来 twitter 自己都放弃 bower 了。
    http://bower.io/
    BlackBerry999
        16
    BlackBerry999  
       2020-05-07 09:00:21 +08:00
    flutter
    huan1043269994
        18
    huan1043269994  
       2020-05-07 09:24:39 +08:00
    Flutter 走起
    exploreXin
        19
    exploreXin  
       2020-05-07 09:33:01 +08:00
    脱离实际场景讨论技术是危险的,不同的场景要用不同的技术方案,看似可有可无的习惯,长久下去,会毁了程序开发人员的技术嗅觉。
    nielinjie
        20
    nielinjie  
       2020-05-07 09:37:40 +08:00
    为啥要别的呢?不香了么?关键是要提出哪里不香,才好讨论可能的替代品 /补充品。
    dodo2012
        21
    dodo2012  
       2020-05-07 10:09:19 +08:00   ❤️ 1
    我最烦的是 node_modules 这玩意,随便一个项目,代码没多少,依赖一大堆,轻松几百 M
    runze
        22
    runze  
       2020-05-07 10:31:16 +08:00
    @dodo2012 #21 snowpack
    yuxizhe
        23
    yuxizhe  
       2020-05-07 12:35:45 +08:00
    flutter
    DOLLOR
        24
    DOLLOR  
       2020-05-07 15:28:43 +08:00
    vue+element-ui 只需引入三个文件就可以干活了。

    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
    <script src="https://unpkg.com/vue/dist/vue.js"></script>
    <script src="https://unpkg.com/element-ui/lib/index.js"></script>

    <div id="app">
    <el-button @click="visible = true">Button</el-button>
    <el-dialog :visible.sync="visible" title="Hello world">
    <p>Try Element</p>
    </el-dialog>
    </div>

    <script>
    new Vue({
    el: '#app',
    data: function () {
    return { visible: false }
    }
    })
    </script>
    darknoll
        25
    darknoll  
       2020-05-07 15:42:26 +08:00
    我用 cef,js 和 c++足矣
    llsquaer
        26
    llsquaer  
       2020-05-07 19:06:06 +08:00
    @DOLLOR 这样写出来源码直接暴露在外面的..学了一段时间 vue..但是他们打包过后的源码直接就看不懂了.
    ppphp
        27
    ppphp  
       2020-05-07 19:19:03 +08:00
    有的,第一步,先打开 txt
    Messiahhh
        28
    Messiahhh  
       2020-05-07 19:40:37 +08:00
    yarn install...
    w3cfed
        29
    w3cfed  
       2020-05-07 23:59:41 +08:00
    deno
    rust

    走起。
    luozic
        30
    luozic  
       2020-05-08 00:05:07 +08:00
    kotlin C# C++ 不少语言都支持跨平台开发啊。
    tyrealgray
        31
    tyrealgray  
       2020-05-08 00:40:26 +08:00
    haxe
    cmdOptionKana
        32
    cmdOptionKana  
       2020-05-08 00:55:32 +08:00
    明明主流的如 React, Vue, Bootstrap 等等,都可以完全脱离 node.js 呀。
    cmdOptionKana
        33
    cmdOptionKana  
       2020-05-08 01:00:13 +08:00
    比如 Vue 官网入门教程 https://cn.vuejs.org/v2/guide/ 一开头的安装部分,官方本来就推荐用 <script src="https://cdn.jsdelivr.net/npm/vue"></script> 并且明确说明 “安装教程给出了更多安装 Vue 的方式。请注意我们不推荐新手直接使用 vue-cli,尤其是在你还不熟悉基于 Node.js 的构建工具时”
    janus77
        34
    janus77  
       2020-05-08 01:04:44 +08:00
    一定程度上包管理就等于生态,所以提到前端的生态最猛的不就是 npm 么……
    wanguorui123
        35
    wanguorui123  
       2020-05-08 08:27:35 +08:00 via iPhone
    自己撸框架,类加载
    xingyuc
        36
    xingyuc  
       2020-05-08 09:28:28 +08:00
    @artyhacker 一个单页面小工具需要 npm 几十上百 m 的包,有何用?
    xingyuc
        37
    xingyuc  
       2020-05-08 09:30:35 +08:00
    @llsquaer 可以看下 33 楼,前台的东西有什么不能给看的
    weixiangzhe
        38
    weixiangzhe  
       2020-05-08 11:17:33 +08:00
    script 加 type=module 可以直接写,写写 demo 可以, 生产就不要想了
    DOLLOR
        39
    DOLLOR  
       2020-05-08 11:50:32 +08:00
    @xingyuc 写“小工具”用 Vanilla JS 咯,连<script src="jquery.js">都嫌多余。
    lvming6816077
        40
    lvming6816077  
       2020-05-08 14:36:04 +08:00
    最简洁也是性能最好的方法就是直接用原生 JavaScript 来写,需要啥就用<script>引入,这样更可控,不像用 Npm install 会下载很多依赖的模块,导致前端资源变大。
    ccyu220
        41
    ccyu220  
       2020-05-08 16:42:22 +08:00
    @xingyuc 又不自己造轮子,又想车动起来。一个单页面几十上百 M 的包,你就不能先去看看你需要的包和包自身依赖吗。
    JayLin1011
        42
    JayLin1011  
       2020-05-08 17:39:44 +08:00
    目前沒有,感覺太不切實際,畢竟有很多實用的輪子,當然 deno 未來可期,體驗會好一些。
    james122333
        43
    james122333  
       2020-05-08 20:56:12 +08:00
    有阿 只不过很多东西你得自己来而已 但这样自订也高 放弃 Windows 深入 Unix 哲学吧 (滑稽)
    xingyuc
        44
    xingyuc  
       2020-05-09 16:12:25 +08:00
    @ccyu220 我只需要 dist 下几个文件 就可以了……用得着另外那几百 m 么
    xingyuc
        45
    xingyuc  
       2020-05-09 16:17:16 +08:00
    @DOLLOR 666,长见识了
    artyhacker
        46
    artyhacker  
       2020-05-11 08:46:57 +08:00
    @xingyuc 这些包不是你自己装的?你要觉得太大可以选择不用啊,从头自己造轮子呗. 你写个 word 和 ppt 还得装好几个 G 呢.
    libook
        47
    libook  
       2020-05-11 12:06:02 +08:00
    工具是为需求服务的,不是用来制造麻烦的,如果你用工具感觉还不如不用,那就没必要硬上工具。

    比如需求就是做一个表单页面,没有复杂的交互和数据流,这样完全没必要用任何框架和库,原生 JS 、CSS 、HTML 就够了。

    技术选型不是选归宿,你在一个地方用 NPM 不爽,但在另一个地方可能不用 NPM 会不爽;所以用上 NPM 也不是说任何情况下都必须用 NPM,不用 NPM 也不是说任何情况下都必须不用 NPM,反正老板按照出的活给钱,不管三七二十一,能快速出活就香。
    genal
        48
    genal  
       2020-07-27 21:02:52 +08:00
    @xingyuc test
    xingyuc
        49
    xingyuc  
       2020-07-28 09:11:30 +08:00
    @genal
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5585 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 01:37 · PVG 09:37 · LAX 17:37 · JFK 20:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.