npm 加载php,javascript – 如何从基于PHP编写器的包中的基于NPM的包加载资源?

首先:这不是关于如何使用NPM包作为Composer包的依赖关系的问题.这不是问题:直接使用NPM或编写器插件可以解决它.

假设我们加载NPM包作为Composer包的依赖(使用create-package),我们得到大致这样的结构:

Root

+-- node_modules

| +-- our_npm_package

| +-- assets

| | +-- our.css

| +-- js

| +-- bundle.js

+-- vendor

| +-- our

| +-- package

+-- src

+-- tests

| composer.json

| package.json

| index.php

NPM包中包含一些Web资产(JS,CSS,图像).我们可以使用Browserify将它们捆绑在一起,并在index.php中使用bundle.js.但问题是,在我看来,这是不好的方法. Browserify应该只捆绑JS,同时单独留下CSS和图像.通过JS向浏览器提供CSS是非常错误的技术使用:浏览器能够自行加载CSS.这种方式适用于禁用JS的浏览器.关于图像的相同故事:浏览器可以在没有JS帮助的情况下加载和显示它们

所以我得出结论,Browserify(我应该说的很好的包)应该只用于JS,它会产生很好的bundle.js,我们可以从index.php调用它们

这里是问题的核心:如何在基于Composer的PHP包中正确引用这些基于NPM的资产?我们当然可以使用:

但这很丑陋而且不可靠.我真的希望它是:

关于bundle.js也是如此.我不想要:

反而

很多人只是创建脚本,在根文件夹中创建css和js文件夹,然后从NPM包中编织资源.工作,但仍然很难看.

有些人(尤其是使用框架)更进一步,使用某种自动复制的composer插件.在这种情况下,他们在composer包中指定他们想要的资产.不仅仅是简单的复制,但仍然不是很好.

我真正想要的是以某种方式在NPM包中声明资产.然后使用Composer插件/脚本在NPM包中找到它并将符号链接/复制到它们应该由PHP代码使用的位置.最重要的是确保PHP所需的所有资产实际存在.

我本人即将为此目的编写作曲家插件,但我不想重新发明轮子.当然,我不是唯一面临拼接PHP / NPM JS问题的人,我希望这个问题已经以适当的方式解决了.在过去的三天里,我用谷歌搜索高低,找不到任何体面的东西.

能告诉我有没有一种解决这个问题的简单方法?单个作曲家插件可以被视为答案.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值