小编mar*_*sds的帖子

Vue 和 Webpack 摇树、sideEffects 和 CSS:加载未使用组件的 CSS

我们正在尝试找出使用 Webpack 在 Vue 单文件组件中处理 CSS 树抖动的正确方法。

在 package.json 中,我有:"sideEffects": ["*.css", "*.less","*.vue" ],这似乎可以正常工作以阻止 Vue 组件在不应该加载的情况下加载。但是,<style>来自 SFC 的每个标签都已加载到页面上。

我们如何加载我们的 SFC 是从一个列出了一堆导出的 NPM 包,比如

export blah from 'blah.vue';
export blah2 from 'blah2.vue';
export blah3 from 'blah3.vue';
Run Code Online (Sandbox Code Playgroud)

即使在我们的 JavaScript 中,import { blah3 } from 'a-npm-package';它也包含了所有三种样式。由于我们有很多 Vue 组件,这导致许多未使用的 CSS 被添加到页面中。

我们怎样才能防止这种情况发生?必须有一种更好、更动态的方式来处理样式,而不是仅仅将它们全部转储到页面中,即使只有 1/10 的样式被使用?

谢谢

css webpack vue.js vuejs2

10
推荐指数
1
解决办法
1155
查看次数

@babel/plugin-syntax-dynamic-import 在导入的节点模块中不起作用

["@babel/plugin-syntax-dynamic-import"]在我的.babelrc文件中,并且我能够成功地对我自己项目中的 Vue 文件使用动态导入,但是当我尝试导入 node/npm 模块import App from '@something/app';时,在使用 Webpack 构建时出现此错误:

SyntaxError: \node_modules\@something\app\src\SomeApp.vue: Support for the experimental syntax 'dynamicImport' isn't currently enabled (16:19):

  14 |  name: 'SomeApp',
  15 |  components: {
> 16 |      SomeCompontent: () => import('./some-dir/SomeCompontent.vue'),
     |                      ^


Add @babel/plugin-syntax-dynamic-import (https://git.io/vb4Sv) to the 'plugins' section of your Babel config to enable parsing.
Run Code Online (Sandbox Code Playgroud)

@babel/plugin-syntax-dynamic-import 在我的项目和正在导入的节点模块中作为插件启用,但 Babel 出于某种原因不尊重它。

在导入节点模块时,我需要做些什么才能让 Babel 应用这个插件?

谢谢

webpack vue.js babeljs webpack-4

5
推荐指数
1
解决办法
5797
查看次数

警告:尝试分配非对象的属性,但是对象存在

这是我的课:

class Network {
    protected $value = null;
    protected $properties = array();
    public $type = null;

    function __construct($value = null, $type = null) {
        $this->value = $value;
        $this->type = $type;
    }

    public function __set($name, $value) {
        if(isset($this->{$name})) {
            $this->{$name} = $value;
        } else {
            $this->properties[$name] = new self($value, null);
        }
    }

    public function __get($name) {
        return $this->properties[$name]->value;
    }

    public function __toString() {
        return $this->value;
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是我想要做的:

$networks = new \stdClass();
$networks->test= new \Orange_Post\Network('Test');
$networks->test->enabled = true;
$networks->test->enabled->type = 'boolean'; …
Run Code Online (Sandbox Code Playgroud)

php

1
推荐指数
1
解决办法
2万
查看次数

标签 统计

vue.js ×2

webpack ×2

babeljs ×1

css ×1

php ×1

vuejs2 ×1

webpack-4 ×1